================
@@ -357,10 +357,12 @@ ParsedType Sema::getTypeName(const IdentifierInfo &II,
SourceLocation NameLoc,
return nullptr;
}
- // FIXME: LookupNestedNameSpecifierName isn't the right kind of
- // lookup for class-names.
- LookupNameKind Kind = isClassName ? LookupNestedNameSpecifierName :
- LookupOrdinaryName;
+ // In case we know that the identifier is a class name, we know that it is
+ // a type declaration (struct, class, union or enum) so we can use tag name
+ // lookup:
+ // The lookup for the component name of the type-name or simple-template-id
+ // is type-only ([basic.lookup]).
----------------
Sirraide wrote:
```suggestion
// In case we know that the identifier is a class name, we know that it is
// a type declaration (struct, class, union or enum) so we can use tag name
// lookup.
//
// C++ [class.derived]p2 (wrt lookup in a base-specifier): The lookup for
// the component name of the type-name or simple-template-id is type-only.
```
I think this is a bit clearer.
https://github.com/llvm/llvm-project/pull/112166
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits