For code reuse in SemaCodeComplete.
Note that the tests for QualTypeNames are still in Tooling as they use
Tooling's common testing code.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Can you remind me why NamedDecl::printQualifiedName is not appropriate for your needs?
The use-case in code completion (see D38538, the interesting bit is in SemaCodeComplete.cpp) creates a QualType that is being pretty-printed later on.
There does not seem to be a way to rewrite it to use printQualifiedNamefor that particular case without messing up the code. I was initially planning to simply create ElaborateType with proper NestedNameSpecifier, but that's essentially what the code in QualTypeNames does already (it has logic to create both the NestedNameSpecifier and ElaboratedType out of it), so we should definitely reuse it.
In general, helpers like this look somewhat useful when writing features that present code to the user and the usage in SemaCodeComplete feels natural, at least from my perspective.
Got it, thanks. If we're moving this into AST, I suspect ASTContext would be a better home for it. That's where the rest of our random type manipulation code lives, anyway. :)