@@ -450,7 +450,7 @@ class MetadataReader {
450
450
Node::Kind::OpaqueTypeDescriptorSymbolicReference,
451
451
context.getResolved ().getAddressData ());
452
452
}
453
-
453
+
454
454
return buildContextMangling (context, dem);
455
455
}
456
456
case Demangle::SymbolicReferenceKind::AccessorFunctionReference: {
@@ -2735,17 +2735,25 @@ class MetadataReader {
2735
2735
|| !*parentDescriptorResult
2736
2736
|| !parentDescriptorResult->isResolved ())
2737
2737
return nullptr ;
2738
-
2739
- auto mangledNode =
2740
- demangleAnonymousContextName (parentDescriptorResult->getResolved (), dem);
2741
- if (!mangledNode)
2738
+
2739
+ if (parentDemangling->getKind () == Node::Kind::AnonymousContext) {
2740
+ auto mangledNode =
2741
+ demangleAnonymousContextName (parentDescriptorResult->getResolved (), dem);
2742
+ if (!mangledNode)
2743
+ return nullptr ;
2744
+ if (mangledNode->getKind () == Node::Kind::Global)
2745
+ mangledNode = mangledNode->getChild (0 );
2746
+
2747
+ auto opaqueNode = dem.createNode (Node::Kind::OpaqueReturnTypeOf);
2748
+ opaqueNode->addChild (mangledNode, dem);
2749
+ return opaqueNode;
2750
+ } else if (parentDemangling->getKind () == Node::Kind::Module) {
2751
+ auto opaqueNode = dem.createNode (Node::Kind::OpaqueReturnTypeOf);
2752
+ opaqueNode->addChild (parentDemangling, dem);
2753
+ return opaqueNode;
2754
+ } else {
2742
2755
return nullptr ;
2743
- if (mangledNode->getKind () == Node::Kind::Global)
2744
- mangledNode = mangledNode->getChild (0 );
2745
-
2746
- auto opaqueNode = dem.createNode (Node::Kind::OpaqueReturnTypeOf);
2747
- opaqueNode->addChild (mangledNode, dem);
2748
- return opaqueNode;
2756
+ }
2749
2757
}
2750
2758
2751
2759
default :
0 commit comments