diff options
author | Daniel Grumberg <dgrumberg@apple.com> | 2024-09-05 09:15:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-05 09:15:09 +0100 |
commit | cf1ad28169be5d026ec95f351b56b0c090b3e682 (patch) | |
tree | 6286cbc23446070ac90a0d3bce064271c56a1019 /clang/lib/ExtractAPI/DeclarationFragments.cpp | |
parent | f1ac334b13c22222ed5c71bad04ed8345b2be135 (diff) | |
download | llvm-cf1ad28169be5d026ec95f351b56b0c090b3e682.zip llvm-cf1ad28169be5d026ec95f351b56b0c090b3e682.tar.gz llvm-cf1ad28169be5d026ec95f351b56b0c090b3e682.tar.bz2 |
[clang][ExtractAPI] Handle AttributedType fragments transparently (#107262)
rdar://131958623
Diffstat (limited to 'clang/lib/ExtractAPI/DeclarationFragments.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/DeclarationFragments.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/ExtractAPI/DeclarationFragments.cpp b/clang/lib/ExtractAPI/DeclarationFragments.cpp index d77bb1d..06ce5ed 100644 --- a/clang/lib/ExtractAPI/DeclarationFragments.cpp +++ b/clang/lib/ExtractAPI/DeclarationFragments.cpp @@ -276,6 +276,19 @@ DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForType( DeclarationFragments Fragments; + if (const MacroQualifiedType *MQT = dyn_cast<MacroQualifiedType>(T)) { + Fragments.append( + getFragmentsForType(MQT->getUnderlyingType(), Context, After)); + return Fragments; + } + + if (const AttributedType *AT = dyn_cast<AttributedType>(T)) { + // FIXME: Serialize Attributes correctly + Fragments.append( + getFragmentsForType(AT->getModifiedType(), Context, After)); + return Fragments; + } + // An ElaboratedType is a sugar for types that are referred to using an // elaborated keyword, e.g., `struct S`, `enum E`, or (in C++) via a // qualified name, e.g., `N::M::type`, or both. |