https://github.com/kuilpd commented:
I think we need to get rid of everything that references C++ keywords directly. I don't think we need to parse the builtin type manually, so we can just remove `IsSimpleTypeSpecifierKeyword`, `HandleSimpleTypeSpecifier`, and `TypeDeclaration` class altogether. Instead, parse a sequence of identifiers as a single string and call `TypeSystem::GetBuiltinTypeByName` to check if such a builtin type exists, it already has pretty much all variations of builtin types in `TypeSystemClang`. This way other languages can specify their own builtin types as well. The algorithm of `ParseTypeId` would be something like this: 1. `ParseTypeSpecifierSeq`, that returns a string that is either a builtin type (`"unsigned long long"`) or a user defined type (`"ns::myint"`) 2. Call `ResolveTypeByName` on the string, which first attempts a `GetBuiltinTypeByName` and immediately returns a `CompilerType` if found, then searches in modules for user types 3. Handle * and & like before I did a quick test with this logic, seems to be working. https://github.com/llvm/llvm-project/pull/159500 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits