Track a resolved Member on each member access expression. (#1333)

Type checking now stores information on a member access identifying the member that was accessed, not only its name. This parallels what we do for other similar constructs whose meaning is resolved by name lookup or type-checking, and will allow us to avoid redoing lookups in some cases during interpretation.
This commit is contained in:
Richard Smith
2022-06-16 17:22:31 -07:00
committed by GitHub
parent 4113ec8a67
commit 17ee3ed9b7
16 changed files with 222 additions and 115 deletions
+2 -1
View File
@@ -143,7 +143,8 @@ void Declaration::PrintID(llvm::raw_ostream& out) const {
}
}
auto GetName(const Declaration& declaration) -> std::optional<std::string> {
auto GetName(const Declaration& declaration)
-> std::optional<std::string_view> {
switch (declaration.kind()) {
case DeclarationKind::FunctionDeclaration:
return cast<FunctionDeclaration>(declaration).name();