@@ -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: {
@@ -2766,17 +2766,25 @@ class MetadataReader {
2766
2766
|| !*parentDescriptorResult
2767
2767
|| !parentDescriptorResult->isResolved ())
2768
2768
return nullptr ;
2769
-
2770
- auto mangledNode =
2771
- demangleAnonymousContextName (parentDescriptorResult->getResolved (), dem);
2772
- if (!mangledNode)
2769
+
2770
+ if (parentDemangling->getKind () == Node::Kind::AnonymousContext) {
2771
+ auto mangledNode =
2772
+ demangleAnonymousContextName (parentDescriptorResult->getResolved (), dem);
2773
+ if (!mangledNode)
2774
+ return nullptr ;
2775
+ if (mangledNode->getKind () == Node::Kind::Global)
2776
+ mangledNode = mangledNode->getChild (0 );
2777
+
2778
+ auto opaqueNode = dem.createNode (Node::Kind::OpaqueReturnTypeOf);
2779
+ opaqueNode->addChild (mangledNode, dem);
2780
+ return opaqueNode;
2781
+ } else if (parentDemangling->getKind () == Node::Kind::Module) {
2782
+ auto opaqueNode = dem.createNode (Node::Kind::OpaqueReturnTypeOf);
2783
+ opaqueNode->addChild (parentDemangling, dem);
2784
+ return opaqueNode;
2785
+ } else {
2773
2786
return nullptr ;
2774
- if (mangledNode->getKind () == Node::Kind::Global)
2775
- mangledNode = mangledNode->getChild (0 );
2776
-
2777
- auto opaqueNode = dem.createNode (Node::Kind::OpaqueReturnTypeOf);
2778
- opaqueNode->addChild (mangledNode, dem);
2779
- return opaqueNode;
2787
+ }
2780
2788
}
2781
2789
2782
2790
default :
0 commit comments