@@ -35,17 +35,15 @@ final class TypealiasTests: XCTestCase {
35
35
)
36
36
}
37
37
38
+ // <rdar://problem/13339798> QoI: poor diagnostic in malformed typealias
38
39
func testTypealias3a( ) {
39
40
AssertParse (
40
41
"""
41
- // <rdar://problem/13339798> QoI: poor diagnostic in malformed typealias
42
42
typealias Foo1 1️⃣: Int
43
43
""" ,
44
44
diagnostics: [
45
- // TODO: Old parser expected error on line 2: expected '=' in type alias declaration, Fix-It replacements: 16 - 17 = '='
46
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
47
- DiagnosticSpec ( message: " extraneous ': Int' at top level " ) ,
48
- ]
45
+ DiagnosticSpec ( message: " expected '=' in typealias declaration " ) ,
46
+ ] , fixedSource: " typealias Foo1 = Int "
49
47
)
50
48
}
51
49
@@ -55,10 +53,8 @@ final class TypealiasTests: XCTestCase {
55
53
typealias Foo21️⃣: Int
56
54
""" ,
57
55
diagnostics: [
58
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration, Fix-It replacements: 15 - 16 = ' ='
59
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
60
- DiagnosticSpec ( message: " extraneous ': Int' at top level " ) ,
61
- ]
56
+ DiagnosticSpec ( message: " expected '=' in typealias declaration " ) ,
57
+ ] , fixedSource: " typealias Foo2= Int "
62
58
)
63
59
}
64
60
@@ -68,10 +64,8 @@ final class TypealiasTests: XCTestCase {
68
64
typealias Foo3 1️⃣:Int
69
65
""" ,
70
66
diagnostics: [
71
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration, Fix-It replacements: 16 - 17 = '= '
72
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
73
- DiagnosticSpec ( message: " extraneous ':Int' at top level " ) ,
74
- ]
67
+ DiagnosticSpec ( message: " expected '=' in typealias declaration " ) ,
68
+ ] , fixedSource: " typealias Foo3 =Int "
75
69
)
76
70
}
77
71
@@ -81,10 +75,8 @@ final class TypealiasTests: XCTestCase {
81
75
typealias Foo41️⃣:/*comment*/Int
82
76
""" ,
83
77
diagnostics: [
84
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration, Fix-It replacements: 15 - 16 = ' = '
85
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
86
- DiagnosticSpec ( message: " extraneous ':/*comment*/Int' at top level " ) ,
87
- ]
78
+ DiagnosticSpec ( message: " expected '=' in typealias declaration " ) ,
79
+ ] , fixedSource: " typealias Foo4=/*comment*/Int "
88
80
)
89
81
}
90
82
@@ -94,7 +86,6 @@ final class TypealiasTests: XCTestCase {
94
86
typealias Recovery11️⃣
95
87
""" ,
96
88
diagnostics: [
97
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration
98
89
DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
99
90
]
100
91
)
@@ -103,13 +94,11 @@ final class TypealiasTests: XCTestCase {
103
94
func testTypealias6( ) {
104
95
AssertParse (
105
96
"""
106
- typealias Recovery2 1️⃣:
97
+ typealias Recovery2 1️⃣:2️⃣
107
98
""" ,
108
99
diagnostics: [
109
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration
110
- // TODO: Old parser expected error on line 1: expected type in type alias declaration
111
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
112
- DiagnosticSpec ( message: " extraneous ':' at top level " ) ,
100
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected '=' in typealias declaration " , fixIts: [ " replace ':' by '=' " ] ) ,
101
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected value in typealias declaration " ) ,
113
102
]
114
103
)
115
104
}
@@ -120,7 +109,6 @@ final class TypealiasTests: XCTestCase {
120
109
typealias Recovery3 =1️⃣
121
110
""" ,
122
111
diagnostics: [
123
- // TODO: Old parser expected error on line 1: expected type in type alias declaration
124
112
DiagnosticSpec ( message: " expected value in typealias declaration " ) ,
125
113
]
126
114
)
@@ -132,24 +120,19 @@ final class TypealiasTests: XCTestCase {
132
120
typealias Recovery4 1️⃣: Int
133
121
""" ,
134
122
diagnostics: [
135
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration
136
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
137
- DiagnosticSpec ( message: " extraneous ': Int' at top level " ) ,
123
+ DiagnosticSpec ( message: " expected '=' in typealias declaration " , fixIts: [ " replace ':' by '=' " ] ) ,
138
124
]
139
125
)
140
126
}
141
127
142
128
func testTypealias9( ) {
143
129
AssertParse (
144
130
"""
145
- typealias Recovery5 1️⃣: Int , Float
131
+ typealias Recovery5 1️⃣: Int2️⃣ , Float
146
132
""" ,
147
133
diagnostics: [
148
- // TODO: Old parser expected error on line 1: expected '=' in type alias declaration
149
- // TODO: Old parser expected error on line 1: consecutive statements on a line must be separated by ';'
150
- // TODO: Old parser expected error on line 1: expected expression
151
- DiagnosticSpec ( message: " expected '=' and value in typealias declaration " ) ,
152
- DiagnosticSpec ( message: " extraneous ': Int, Float' at top level " ) ,
134
+ DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected '=' in typealias declaration " , fixIts: [ " replace ':' by '=' " ] ) ,
135
+ DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " extraneous ', Float' at top level " ) ,
153
136
]
154
137
)
155
138
}
@@ -160,7 +143,6 @@ final class TypealiasTests: XCTestCase {
160
143
typealias Recovery6 = 1️⃣=
161
144
""" ,
162
145
diagnostics: [
163
- // TODO: Old parser expected error on line 1: expected type in type alias declaration
164
146
DiagnosticSpec ( message: " expected value in typealias declaration " ) ,
165
147
DiagnosticSpec ( message: " extraneous '=' at top level " ) ,
166
148
]
0 commit comments