[clang] [clang-tools-extra] [clang] Improve nested name specifier AST representation (PR #147835)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 16 14:21:58 PDT 2025


================
@@ -2586,8 +2561,9 @@ bool CXXNameMangler::mangleUnresolvedTypeOrSimpleId(QualType Ty,
   }
 
   case Type::InjectedClassName:
-    mangleSourceNameWithAbiTags(
-        cast<InjectedClassNameType>(Ty)->getDecl());
+    mangleSourceNameWithAbiTags(cast<InjectedClassNameType>(Ty)
+                                    ->getOriginalDecl()
+                                    ->getDefinitionOrSelf());
----------------
mizvekov wrote:

getAs only desugars. This could happen with a TemplateSpecializationType which its canonical type is an InjectedClassNameType, since in that case desugar just returns the canonical type, but that is not the case for that constructor, since its using an InjectedClassNameType as written in source code.

https://github.com/llvm/llvm-project/pull/147835


More information about the cfe-commits mailing list