@@ -431,7 +431,6 @@ swift::Demangle::NodePointer TypeSystemSwiftTypeRef::Transform(
431
431
for (NodePointer child : *node) {
432
432
NodePointer transformed = Transform (dem, child, fn);
433
433
changed |= (child != transformed);
434
- assert (transformed && " callback returned a nullptr" );
435
434
if (transformed)
436
435
children.push_back (transformed);
437
436
}
@@ -1422,7 +1421,19 @@ static bool ContainsSugaredParen(swift::Demangle::NodePointer node) {
1422
1421
1423
1422
return false ;
1424
1423
}
1425
-
1424
+
1425
+ swift::Demangle::NodePointer
1426
+ StripPrivateDeclNames (swift::Demangle::Demangler &dem,
1427
+ swift::Demangle::NodePointer node) {
1428
+ using namespace swift ::Demangle;
1429
+ return TypeSystemSwiftTypeRef::Transform (
1430
+ dem, node, [&](NodePointer node) -> NodePointer {
1431
+ if (node->getKind () == Node::Kind::PrivateDeclName)
1432
+ return nullptr ;
1433
+ return node;
1434
+ });
1435
+ }
1436
+
1426
1437
// / Compare two swift types from different type systems by comparing their
1427
1438
// / (canonicalized) mangled name.
1428
1439
template <> bool Equivalent<CompilerType>(CompilerType l, CompilerType r) {
@@ -1443,10 +1454,10 @@ template <> bool Equivalent<CompilerType>(CompilerType l, CompilerType r) {
1443
1454
if (ContainsUnresolvedTypeAlias (r_node) ||
1444
1455
ContainsGenericTypeParameter (r_node) || ContainsSugaredParen (r_node))
1445
1456
return true ;
1446
- if (swift::Demangle::mangleNode (
1447
- TypeSystemSwiftTypeRef::CanonicalizeSugar (dem, l_node)) ==
1448
- swift::Demangle::mangleNode (
1449
- TypeSystemSwiftTypeRef::CanonicalizeSugar (dem, r_node)))
1457
+ if (swift::Demangle::mangleNode (StripPrivateDeclNames (
1458
+ dem, TypeSystemSwiftTypeRef::CanonicalizeSugar (dem, l_node) )) ==
1459
+ swift::Demangle::mangleNode (StripPrivateDeclNames (
1460
+ dem, TypeSystemSwiftTypeRef::CanonicalizeSugar (dem, r_node) )))
1450
1461
return true ;
1451
1462
1452
1463
// SwiftASTContext hardcodes some less-precise types.
0 commit comments