Skip to content

Commit 6bbde47

Browse files
committed
Use new mangling for type USRs used by incremental compilation
1 parent 8858137 commit 6bbde47

File tree

3 files changed

+110
-117
lines changed

3 files changed

+110
-117
lines changed

lib/FrontendTool/ReferenceDependencies.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include "swift/AST/Decl.h"
1717
#include "swift/AST/DiagnosticEngine.h"
1818
#include "swift/AST/DiagnosticsFrontend.h"
19-
#include "swift/AST/Mangle.h"
2019
#include "swift/AST/Module.h"
2120
#include "swift/AST/ModuleLoader.h"
2221
#include "swift/AST/NameLookup.h"
@@ -99,14 +98,8 @@ static bool extendedTypeIsPrivate(TypeLoc inheritedType) {
9998
}
10099

101100
static std::string mangleTypeAsContext(const NominalTypeDecl *type) {
102-
Mangle::Mangler mangler(/*debug style=*/false, /*usePunycode=*/true);
103-
mangler.mangleContext(type);
104-
std::string Old = mangler.finalize();
105-
106-
NewMangling::ASTMangler NewMangler(/*debug style=*/false);
107-
std::string New = NewMangler.mangleTypeAsContextUSR(type);
108-
109-
return NewMangling::selectMangling(Old, New);
101+
NewMangling::ASTMangler Mangler;
102+
return Mangler.mangleTypeAsContextUSR(type);
110103
}
111104

112105
bool swift::emitReferenceDependencies(DiagnosticEngine &diags,

test/NameBinding/reference-dependencies-members.swift

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,47 +25,47 @@
2525
// DEPENDS-MEMBER-LABEL: {{^depends-member:$}}
2626
// DEPENDS-MEMBER-NEGATIVE-LABEL: {{^depends-member:$}}
2727

28-
// PROVIDES-NOMINAL-DAG: 4Base"
28+
// PROVIDES-NOMINAL-DAG: 4BaseC"
2929
class Base {
30-
// PROVIDES-MEMBER-DAG: - ["{{.+}}4Base", ""]
31-
// PROVIDES-MEMBER-NEGATIVE-NOT: - ["{{.+}}4Base", "{{.+}}"]
30+
// PROVIDES-MEMBER-DAG: - ["{{.+}}4BaseC", ""]
31+
// PROVIDES-MEMBER-NEGATIVE-NOT: - ["{{.+}}4BaseC", "{{.+}}"]
3232
func foo() {}
3333
}
3434

35-
// PROVIDES-NOMINAL-DAG: 3Sub"
36-
// DEPENDS-NOMINAL-DAG: 9OtherBase"
35+
// PROVIDES-NOMINAL-DAG: 3SubC"
36+
// DEPENDS-NOMINAL-DAG: 9OtherBaseC"
3737
class Sub : OtherBase {
38-
// PROVIDES-MEMBER-DAG: - ["{{.+}}3Sub", ""]
39-
// PROVIDES-MEMBER-NEGATIVE-NOT: - ["{{.+}}3Sub", "{{.+}}"]
40-
// DEPENDS-MEMBER-DAG: - ["{{.+}}9OtherBase", ""]
41-
// DEPENDS-MEMBER-DAG: - ["{{.+}}9OtherBase", "foo"]
42-
// DEPENDS-MEMBER-DAG: - ["{{.+}}9OtherBase", "init"]
38+
// PROVIDES-MEMBER-DAG: - ["{{.+}}3SubC", ""]
39+
// PROVIDES-MEMBER-NEGATIVE-NOT: - ["{{.+}}3SubC", "{{.+}}"]
40+
// DEPENDS-MEMBER-DAG: - ["{{.+}}9OtherBaseC", ""]
41+
// DEPENDS-MEMBER-DAG: - ["{{.+}}9OtherBaseC", "foo"]
42+
// DEPENDS-MEMBER-DAG: - ["{{.+}}9OtherBaseC", "init"]
4343
func foo() {}
4444
}
4545

46-
// PROVIDES-NOMINAL-DAG: 9SomeProto"
47-
// PROVIDES-MEMBER-DAG: - ["{{.+}}9SomeProto", ""]
46+
// PROVIDES-NOMINAL-DAG: 9SomeProtoP"
47+
// PROVIDES-MEMBER-DAG: - ["{{.+}}9SomeProtoP", ""]
4848
protocol SomeProto {}
4949

50-
// PROVIDES-NOMINAL-DAG: 10OtherClass"
51-
// PROVIDES-MEMBER-DAG: - ["{{.+}}10OtherClass", ""]
52-
// DEPENDS-NOMINAL-DAG: 10OtherClass"
53-
// DEPENDS-NOMINAL-DAG: 9SomeProto"
54-
// DEPENDS-MEMBER-DAG: - ["{{.+}}9SomeProto", ""]
55-
// DEPENDS-MEMBER-DAG: - ["{{.+}}10OtherClass", "deinit"]
50+
// PROVIDES-NOMINAL-DAG: 10OtherClassC"
51+
// PROVIDES-MEMBER-DAG: - ["{{.+}}10OtherClassC", ""]
52+
// DEPENDS-NOMINAL-DAG: 10OtherClassC"
53+
// DEPENDS-NOMINAL-DAG: 9SomeProtoP"
54+
// DEPENDS-MEMBER-DAG: - ["{{.+}}9SomeProtoP", ""]
55+
// DEPENDS-MEMBER-DAG: - ["{{.+}}10OtherClassC", "deinit"]
5656
extension OtherClass : SomeProto {}
5757

58-
// PROVIDES-NOMINAL-NEGATIVE-NOT: 11OtherStruct"{{$}}
59-
// DEPENDS-NOMINAL-DAG: 11OtherStruct"
58+
// PROVIDES-NOMINAL-NEGATIVE-NOT: 11OtherStructV"{{$}}
59+
// DEPENDS-NOMINAL-DAG: 11OtherStructV"
6060
extension OtherStruct {
61-
// PROVIDES-MEMBER-DAG: - ["{{.+}}11OtherStruct", ""]
62-
// PROVIDES-MEMBER-DAG: - ["{{.+}}11OtherStruct", "foo"]
63-
// PROVIDES-MEMBER-DAG: - ["{{.+}}11OtherStruct", "bar"]
61+
// PROVIDES-MEMBER-DAG: - ["{{.+}}11OtherStructV", ""]
62+
// PROVIDES-MEMBER-DAG: - ["{{.+}}11OtherStructV", "foo"]
63+
// PROVIDES-MEMBER-DAG: - ["{{.+}}11OtherStructV", "bar"]
6464
// PROVIDES-MEMBER-NEGATIVE-NOT: "baz"
65-
// DEPENDS-MEMBER-DAG: - ["{{.+}}11OtherStruct", "foo"]
66-
// DEPENDS-MEMBER-DAG: - ["{{.+}}11OtherStruct", "bar"]
67-
// DEPENDS-MEMBER-DAG: - !private ["{{.+}}11OtherStruct", "baz"]
68-
// DEPENDS-MEMBER-NEGATIVE-NOT: - ["{{.+}}11OtherStruct", ""]
65+
// DEPENDS-MEMBER-DAG: - ["{{.+}}11OtherStructV", "foo"]
66+
// DEPENDS-MEMBER-DAG: - ["{{.+}}11OtherStructV", "bar"]
67+
// DEPENDS-MEMBER-DAG: - !private ["{{.+}}11OtherStructV", "baz"]
68+
// DEPENDS-MEMBER-NEGATIVE-NOT: - ["{{.+}}11OtherStructV", ""]
6969
func foo() {}
7070
var bar: () { return () }
7171
private func baz() {}

test/NameBinding/reference-dependencies.swift

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -40,27 +40,27 @@
4040
// CHECK-NEXT: "~~~~~"
4141

4242
// CHECK-LABEL: {{^provides-nominal:$}}
43-
// CHECK-NEXT: "V4main10IntWrapper"
44-
// CHECK-NEXT: "VV4main10IntWrapper16InnerForNoReason"
45-
// CHECK-NEXT: "C4main8Subclass"
46-
// CHECK-NEXT: "VE4mainSb11InnerToBool"
47-
// CHECK: "V4main9Sentinel1"
48-
// CHECK-NEXT: "V4main9Sentinel2"
43+
// CHECK-NEXT: "4main10IntWrapperV"
44+
// CHECK-NEXT: "4main10IntWrapperV16InnerForNoReasonV"
45+
// CHECK-NEXT: "4main8SubclassC"
46+
// CHECK-NEXT: "Sb4mainE11InnerToBoolV"
47+
// CHECK: "4main9Sentinel1V"
48+
// CHECK-NEXT: "4main9Sentinel2V"
4949

5050
// CHECK-LABEL: {{^provides-member:$}}
51-
// CHECK-NEXT: - ["V4main10IntWrapper", ""]
52-
// CHECK-NEXT: - ["VV4main10IntWrapper16InnerForNoReason", ""]
53-
// CHECK-NEXT: - ["C4main8Subclass", ""]
54-
// CHECK-NEXT: - ["Ps25ExpressibleByArrayLiteral", ""]
51+
// CHECK-NEXT: - ["4main10IntWrapperV", ""]
52+
// CHECK-NEXT: - ["4main10IntWrapperV16InnerForNoReasonV", ""]
53+
// CHECK-NEXT: - ["4main8SubclassC", ""]
54+
// CHECK-NEXT: - ["s25ExpressibleByArrayLiteralP", ""]
5555
// CHECK-NEXT: - ["Sb", ""]
56-
// CHECK-NEXT: - ["VE4mainSb11InnerToBool", ""]
57-
// CHECK: - ["V4main9Sentinel1", ""]
58-
// CHECK-NEXT: - ["V4main9Sentinel2", ""]
59-
// CHECK: - ["Ps25ExpressibleByArrayLiteral", "useless"]
60-
// CHECK-NEXT: - ["Ps25ExpressibleByArrayLiteral", "useless2"]
56+
// CHECK-NEXT: - ["Sb4mainE11InnerToBoolV", ""]
57+
// CHECK: - ["4main9Sentinel1V", ""]
58+
// CHECK-NEXT: - ["4main9Sentinel2V", ""]
59+
// CHECK: - ["s25ExpressibleByArrayLiteralP", "useless"]
60+
// CHECK-NEXT: - ["s25ExpressibleByArrayLiteralP", "useless2"]
6161
// CHECK-NEXT: - ["Sb", "InnerToBool"]
62-
// CHECK-NEXT: - ["{{.*[0-9]}}FourTildeImpl", "~~~~"]
63-
// CHECK-NEXT: - ["{{.*[0-9]}}FiveTildeImpl", "~~~~~"]
62+
// CHECK-NEXT: - ["{{.*[0-9]}}FourTildeImplV", "~~~~"]
63+
// CHECK-NEXT: - ["{{.*[0-9]}}FiveTildeImplV", "~~~~~"]
6464

6565
// CHECK-LABEL: {{^depends-top-level:$}}
6666

@@ -401,79 +401,79 @@ struct Sentinel2 {}
401401

402402

403403
// CHECK-LABEL: {{^depends-member:$}}
404-
// CHECK-DAG: - ["V4main10IntWrapper", "Int"]
405-
// CHECK-DAG: - ["V4main10IntWrapper", "deinit"]
406-
// CHECK-DAG: - ["Ps10Comparable", ""]
407-
// CHECK-DAG: - ["C4main18ClassFromOtherFile", ""]
404+
// CHECK-DAG: - ["4main10IntWrapperV", "Int"]
405+
// CHECK-DAG: - ["4main10IntWrapperV", "deinit"]
406+
// CHECK-DAG: - ["s10ComparableP", ""]
407+
// CHECK-DAG: - ["4main18ClassFromOtherFileC", ""]
408408
// CHECK-DAG: - !private ["Si", "max"]
409-
// CHECK-DAG: - ["Ps25ExpressibleByFloatLiteral", ""]
410-
// CHECK-DAG: - !private ["Ps33ExpressibleByUnicodeScalarLiteral", ""]
411-
// CHECK-DAG: - !private ["Ps10Strideable", "Stride"]
409+
// CHECK-DAG: - ["s25ExpressibleByFloatLiteralP", ""]
410+
// CHECK-DAG: - !private ["s33ExpressibleByUnicodeScalarLiteralP", ""]
411+
// CHECK-DAG: - !private ["s10StrideableP", "Stride"]
412412
// CHECK-DAG: - !private ["Sa", "reduce"]
413413
// CHECK-DAG: - !private ["Sb", "_getBuiltinLogicValue"]
414414
// CHECK-DAG: - ["Sb", "InnerToBool"]
415-
// CHECK-DAG: - !private ["V4main17OtherFileIntArray", "deinit"]
416-
// CHECK-DAG: - !private ["V4main18OtherFileOuterType", "InnerType"]
417-
// CHECK-DAG: - !private ["VV4main18OtherFileOuterType9InnerType", "init"]
418-
// CHECK-DAG: - !private ["VV4main18OtherFileOuterType9InnerType", "sharedConstant"]
419-
// CHECK-DAG: - !private ["VV4main26OtherFileSecretTypeWrapper10SecretType", "constant"]
420-
// CHECK-DAG: - !private ["V4main25OtherFileProtoImplementor", "deinit"]
421-
// CHECK-DAG: - !private ["V4main26OtherFileProtoImplementor2", "deinit"]
422-
// CHECK-DAG: - !private ["Vs13EmptyIterator", "init"]
423-
// CHECK-DAG: - ["O4main13OtherFileEnum", "Value"]
424-
// CHECK-DAG: - !private ["V4main20OtherFileEnumWrapper", "Enum"]
425-
426-
// CHECK-DAG: - ["V4main14TopLevelStruct", "ValueType"]
427-
// CHECK-DAG: - ["V4main15TopLevelStruct2", "ValueType"]
428-
// CHECK-DAG: - ["V4main15TopLevelStruct3", "ValueType"]
429-
// CHECK-DAG: - ["V4main15TopLevelStruct4", "ValueType"]
430-
// CHECK-DAG: - ["V4main15TopLevelStruct5", "ValueType"]
431-
// CHECK-DAG: - !private ["V4main21PrivateTopLevelStruct", "ValueType"]
432-
// CHECK-DAG: - !private ["V4main22PrivateTopLevelStruct2", "ValueType"]
433-
// CHECK-DAG: - !private ["V4main22PrivateTopLevelStruct3", "ValueType"]
434-
// CHECK-DAG: - !private ["V4main22PrivateTopLevelStruct4", "ValueType"]
435-
436-
// CHECK-DAG: - ["P4main14TopLevelProto1", ""]
437-
// CHECK-DAG: - ["P4main14TopLevelProto2", ""]
438-
// CHECK-DAG: - !private ["P4main13PrivateProto1", ""]
439-
// CHECK-DAG: - !private ["P4main13PrivateProto2", ""]
440-
// CHECK-DAG: - !private ["P4main13PrivateProto3", ""]
415+
// CHECK-DAG: - !private ["4main17OtherFileIntArrayV", "deinit"]
416+
// CHECK-DAG: - !private ["4main18OtherFileOuterTypeV", "InnerType"]
417+
// CHECK-DAG: - !private ["4main18OtherFileOuterTypeV05InnerE0V", "init"]
418+
// CHECK-DAG: - !private ["4main18OtherFileOuterTypeV05InnerE0V", "sharedConstant"]
419+
// CHECK-DAG: - !private ["4main26OtherFileSecretTypeWrapperV0dE0V", "constant"]
420+
// CHECK-DAG: - !private ["4main25OtherFileProtoImplementorV", "deinit"]
421+
// CHECK-DAG: - !private ["4main26OtherFileProtoImplementor2V", "deinit"]
422+
// CHECK-DAG: - !private ["s13EmptyIteratorV", "init"]
423+
// CHECK-DAG: - ["4main13OtherFileEnumO", "Value"]
424+
// CHECK-DAG: - !private ["4main20OtherFileEnumWrapperV", "Enum"]
425+
426+
// CHECK-DAG: - ["4main14TopLevelStructV", "ValueType"]
427+
// CHECK-DAG: - ["4main15TopLevelStruct2V", "ValueType"]
428+
// CHECK-DAG: - ["4main15TopLevelStruct3V", "ValueType"]
429+
// CHECK-DAG: - ["4main15TopLevelStruct4V", "ValueType"]
430+
// CHECK-DAG: - ["4main15TopLevelStruct5V", "ValueType"]
431+
// CHECK-DAG: - !private ["4main21PrivateTopLevelStructV", "ValueType"]
432+
// CHECK-DAG: - !private ["4main22PrivateTopLevelStruct2V", "ValueType"]
433+
// CHECK-DAG: - !private ["4main22PrivateTopLevelStruct3V", "ValueType"]
434+
// CHECK-DAG: - !private ["4main22PrivateTopLevelStruct4V", "ValueType"]
435+
436+
// CHECK-DAG: - ["4main14TopLevelProto1P", ""]
437+
// CHECK-DAG: - ["4main14TopLevelProto2P", ""]
438+
// CHECK-DAG: - !private ["4main13PrivateProto1P", ""]
439+
// CHECK-DAG: - !private ["4main13PrivateProto2P", ""]
440+
// CHECK-DAG: - !private ["4main13PrivateProto3P", ""]
441441

442442
// CHECK-LABEL: {{^depends-nominal:$}}
443443
// We're checking order here to make sure the names are sorted.
444444
// CHECK: - !private "Sa"
445445
// CHECK: - "Sb"
446-
// CHECK: - "C4main18ClassFromOtherFile"
447-
// CHECK: - "Ps10Comparable"
448-
// CHECK: - !private "Vs13EmptyIterator"
449-
// CHECK: - "Ps25ExpressibleByFloatLiteral"
450-
// CHECK: - !private "Ps33ExpressibleByUnicodeScalarLiteral"
451-
// CHECK: - !private "VV4main18OtherFileOuterType9InnerType"
446+
// CHECK: - "4main18ClassFromOtherFileC"
447+
// CHECK: - "s10ComparableP"
448+
// CHECK: - !private "s13EmptyIteratorV"
449+
// CHECK: - "s25ExpressibleByFloatLiteralP"
450+
// CHECK: - !private "s33ExpressibleByUnicodeScalarLiteralP"
451+
// CHECK: - !private "4main18OtherFileOuterTypeV05InnerE0V"
452452
// CHECK: - !private "Si"
453-
// CHECK: - "V4main10IntWrapper"
454-
// CHECK: - "O4main13OtherFileEnum"
455-
// CHECK: - !private "V4main20OtherFileEnumWrapper"
456-
// CHECK: - !private "V4main17OtherFileIntArray"
457-
// CHECK: - !private "V4main18OtherFileOuterType"
458-
// CHECK: - !private "V4main25OtherFileProtoImplementor"
459-
// CHECK: - !private "V4main26OtherFileProtoImplementor2"
460-
// CHECK: - !private "P4main13PrivateProto1"
461-
// CHECK: - !private "P4main13PrivateProto2"
462-
// CHECK: - !private "P4main13PrivateProto3"
463-
// CHECK: - !private "V4main21PrivateTopLevelStruct"
464-
// CHECK: - !private "V4main22PrivateTopLevelStruct2"
465-
// CHECK: - !private "V4main22PrivateTopLevelStruct3"
466-
// CHECK: - !private "V4main22PrivateTopLevelStruct4"
467-
// CHECK: - !private "VV4main26OtherFileSecretTypeWrapper10SecretType"
468-
// CHECK: - !private "Ps10Strideable"
469-
// CHECK: - "V4main23TopLevelForMemberLookup"
470-
// CHECK: - "P4main14TopLevelProto1"
471-
// CHECK: - "P4main14TopLevelProto2"
472-
// CHECK: - "V4main14TopLevelStruct"
473-
// CHECK: - "V4main15TopLevelStruct2"
474-
// CHECK: - "V4main15TopLevelStruct3"
475-
// CHECK: - "V4main15TopLevelStruct4"
476-
// CHECK: - "V4main15TopLevelStruct5"
453+
// CHECK: - "4main10IntWrapperV"
454+
// CHECK: - "4main13OtherFileEnumO"
455+
// CHECK: - !private "4main20OtherFileEnumWrapperV"
456+
// CHECK: - !private "4main17OtherFileIntArrayV"
457+
// CHECK: - !private "4main18OtherFileOuterTypeV"
458+
// CHECK: - !private "4main25OtherFileProtoImplementorV"
459+
// CHECK: - !private "4main26OtherFileProtoImplementor2V"
460+
// CHECK: - !private "4main13PrivateProto1P"
461+
// CHECK: - !private "4main13PrivateProto2P"
462+
// CHECK: - !private "4main13PrivateProto3P"
463+
// CHECK: - !private "4main21PrivateTopLevelStructV"
464+
// CHECK: - !private "4main22PrivateTopLevelStruct2V"
465+
// CHECK: - !private "4main22PrivateTopLevelStruct3V"
466+
// CHECK: - !private "4main22PrivateTopLevelStruct4V"
467+
// CHECK: - !private "4main26OtherFileSecretTypeWrapperV0dE0V"
468+
// CHECK: - !private "s10StrideableP"
469+
// CHECK: - "4main23TopLevelForMemberLookupV"
470+
// CHECK: - "4main14TopLevelProto1P"
471+
// CHECK: - "4main14TopLevelProto2P"
472+
// CHECK: - "4main14TopLevelStructV"
473+
// CHECK: - "4main15TopLevelStruct2V"
474+
// CHECK: - "4main15TopLevelStruct3V"
475+
// CHECK: - "4main15TopLevelStruct4V"
476+
// CHECK: - "4main15TopLevelStruct5V"
477477

478478
// String is not used anywhere in this file, though a string literal is.
479479
// NEGATIVE-NOT: "String"
@@ -487,6 +487,6 @@ struct Sentinel2 {}
487487

488488
// OtherFileSecretTypeWrapper is never used directly in this file.
489489
// NEGATIVE-NOT: "OtherFileSecretTypeWrapper"
490-
// NEGATIVE-NOT: "V4main26OtherFileSecretTypeWrapper"
490+
// NEGATIVE-NOT: "4main26OtherFileSecretTypeWrapperV"
491491

492492
let eof: () = ()

0 commit comments

Comments
 (0)