@@ -128,11 +128,14 @@ final class DeclarationTests: XCTestCase {
128
128
]
129
129
)
130
130
assertParse (
131
- " class B <where g1️⃣ " ,
131
+ " class Bℹ️ <where g1️⃣ " ,
132
132
diagnostics: [
133
133
DiagnosticSpec ( message: " expected ':' or '==' to indicate a conformance or same-type requirement " ) ,
134
- DiagnosticSpec ( message: " expected '>' to end generic parameter clause " , fixIts: [ " insert '>' " ] ) ,
135
- DiagnosticSpec ( message: " expected member block in class " , fixIts: [ " insert member block " ] ) ,
134
+ DiagnosticSpec ( message: " expected '>' to end generic parameter clause " ,
135
+ notes: [ NoteSpec ( message: " to match this opening '<' " ) ] ,
136
+ fixIts: [ " insert '>' " ] ) ,
137
+ DiagnosticSpec ( message: " expected member block in class " ,
138
+ fixIts: [ " insert member block " ] ) ,
136
139
]
137
140
)
138
141
}
@@ -185,11 +188,14 @@ final class DeclarationTests: XCTestCase {
185
188
)
186
189
187
190
assertParse (
188
- " protocol P {1️⃣{}case2️⃣ " ,
191
+ " protocol Pℹ️ {1️⃣{}case2️⃣ " ,
189
192
diagnostics: [
190
193
DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " unexpected code '{}' before enum case " ) ,
191
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected identifier in enum case " , fixIts: [ " insert identifier " ] ) ,
192
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected '}' to end protocol " , fixIts: [ " insert '}' " ] ) ,
194
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected identifier in enum case " ,
195
+ fixIts: [ " insert identifier " ] ) ,
196
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected '}' to end protocol " ,
197
+ notes: [ NoteSpec ( message: " to match this opening '{' " ) ] ,
198
+ fixIts: [ " insert '}' " ] ) ,
193
199
]
194
200
)
195
201
}
@@ -626,9 +632,11 @@ final class DeclarationTests: XCTestCase {
626
632
627
633
func testMissingClosingParenInFunctionSignature( ) {
628
634
assertParse (
629
- " func test (first second: Int1️⃣ " ,
635
+ " func testℹ️ (first second: Int1️⃣ " ,
630
636
diagnostics: [
631
- DiagnosticSpec ( message: " expected ')' to end parameter clause " , fixIts: [ " insert ')' " ] )
637
+ DiagnosticSpec ( message: " expected ')' to end parameter clause " ,
638
+ notes: [ NoteSpec ( message: " to match this opening '(' " ) ] ,
639
+ fixIts: [ " insert ')' " ] )
632
640
]
633
641
)
634
642
}
@@ -745,14 +753,18 @@ final class DeclarationTests: XCTestCase {
745
753
func testExpressionMember( ) {
746
754
assertParse (
747
755
"""
748
- struct S {1️⃣
749
- /2️⃣ ###line 25 " line-directive.swift " 3️⃣
756
+ struct S ℹ️ {1️⃣
757
+ 🔟 /2️⃣ ###line 25 " line-directive.swift " 3️⃣
750
758
4️⃣}
751
759
""" ,
752
760
diagnostics: [
753
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected '}' to end struct " , fixIts: [ " insert '}' " ] ) ,
761
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected '}' to end struct " ,
762
+ notes: [ NoteSpec ( message: " to match this opening '{' " ) ] ,
763
+ fixIts: [ " insert '}' " ] ) ,
754
764
DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " bare slash regex literal may not start with space " ) ,
755
- DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected '/' to end regex literal " , fixIts: [ " insert '/ \' " ] ) ,
765
+ DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected '/' to end regex literal " ,
766
+ notes: [ NoteSpec ( locationMarker: " 🔟 " , message: " to match this opening '/' " ) ] ,
767
+ fixIts: [ " insert '/ \' " ] ) ,
756
768
DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " extraneous brace at top level " ) ,
757
769
]
758
770
)
@@ -837,7 +849,7 @@ final class DeclarationTests: XCTestCase {
837
849
838
850
func testDontRecoverFromDeclKeyword( ) {
839
851
assertParse (
840
- " func foo (first second 1️⃣third 2️⃣struct3️⃣: Int4️⃣) {} " ,
852
+ " func fooℹ️ (first second 1️⃣third 2️⃣struct3️⃣: Int4️⃣) {} " ,
841
853
substructure: Syntax (
842
854
FunctionParameterSyntax (
843
855
firstName: . identifier( " first " ) ,
@@ -847,9 +859,13 @@ final class DeclarationTests: XCTestCase {
847
859
)
848
860
) ,
849
861
diagnostics: [
850
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected ':' in parameter " , fixIts: [ " insert ':' " ] ) ,
851
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected ')' to end parameter clause " , fixIts: [ " insert ')' " ] ) ,
852
- DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected identifier in struct " , fixIts: [ " insert identifier " ] ) ,
862
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected ':' in parameter " ,
863
+ fixIts: [ " insert ':' " ] ) ,
864
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected ')' to end parameter clause " ,
865
+ notes: [ NoteSpec ( message: " to match this opening '(' " ) ] ,
866
+ fixIts: [ " insert ')' " ] ) ,
867
+ DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected identifier in struct " ,
868
+ fixIts: [ " insert identifier " ] ) ,
853
869
DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " unexpected code ')' in struct " ) ,
854
870
]
855
871
)
@@ -1140,13 +1156,18 @@ final class DeclarationTests: XCTestCase {
1140
1156
func testStandaloneAtSignInGenericParameter( ) {
1141
1157
assertParse (
1142
1158
"""
1143
- struct U <@1️⃣
1159
+ struct Uℹ️ <@1️⃣
1144
1160
""" ,
1145
1161
diagnostics: [
1146
- DiagnosticSpec ( message: " expected name in attribute " , fixIts: [ " insert name " ] ) ,
1147
- DiagnosticSpec ( message: " expected name in generic parameter " , fixIts: [ " insert name " ] ) ,
1148
- DiagnosticSpec ( message: " expected '>' to end generic parameter clause " , fixIts: [ " insert '>' " ] ) ,
1149
- DiagnosticSpec ( message: " expected member block in struct " , fixIts: [ " insert member block " ] ) ,
1162
+ DiagnosticSpec ( message: " expected name in attribute " ,
1163
+ fixIts: [ " insert name " ] ) ,
1164
+ DiagnosticSpec ( message: " expected name in generic parameter " ,
1165
+ fixIts: [ " insert name " ] ) ,
1166
+ DiagnosticSpec ( message: " expected '>' to end generic parameter clause " ,
1167
+ notes: [ NoteSpec ( message: " to match this opening '<' " ) ] ,
1168
+ fixIts: [ " insert '>' " ] ) ,
1169
+ DiagnosticSpec ( message: " expected member block in struct " ,
1170
+ fixIts: [ " insert member block " ] ) ,
1150
1171
]
1151
1172
)
1152
1173
}
@@ -1374,20 +1395,27 @@ final class DeclarationTests: XCTestCase {
1374
1395
macro m1 1️⃣= A
1375
1396
""" ,
1376
1397
diagnostics: [
1377
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected parameter clause in function signature " , fixIts: [ " insert parameter clause " ] )
1398
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected parameter clause in function signature " ,
1399
+ fixIts: [ " insert parameter clause " ] )
1378
1400
]
1379
1401
)
1380
1402
}
1381
1403
1382
1404
func testPrimaryAssociatedTypeNotTerminatedWithAngleBracket( ) {
1383
1405
assertParse (
1384
- " protocol1️⃣ <2️⃣:3️⃣" ,
1406
+ " protocol1️⃣ℹ️ <2️⃣:3️⃣" ,
1385
1407
diagnostics: [
1386
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected identifier in protocol " , fixIts: [ " insert identifier " ] ) ,
1387
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected name in primary associated type clause " , fixIts: [ " insert name " ] ) ,
1388
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected '>' to end primary associated type clause " , fixIts: [ " insert '>' " ] ) ,
1389
- DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected type in inherited type " , fixIts: [ " insert type " ] ) ,
1390
- DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected member block in protocol " , fixIts: [ " insert member block " ] ) ,
1408
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected identifier in protocol " ,
1409
+ fixIts: [ " insert identifier " ] ) ,
1410
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected name in primary associated type clause " ,
1411
+ fixIts: [ " insert name " ] ) ,
1412
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected '>' to end primary associated type clause " ,
1413
+ notes: [ NoteSpec ( message: " to match this opening '<' " ) ] ,
1414
+ fixIts: [ " insert '>' " ] ) ,
1415
+ DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected type in inherited type " ,
1416
+ fixIts: [ " insert type " ] ) ,
1417
+ DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected member block in protocol " ,
1418
+ fixIts: [ " insert member block " ] ) ,
1391
1419
]
1392
1420
)
1393
1421
}
0 commit comments