@@ -6,30 +6,46 @@ final class InvalidIfExprTests: XCTestCase {
6
6
func testInvalidIfExpr1( ) {
7
7
AssertParse (
8
8
"""
9
- func unbalanced_question(a: Bool, b: Bool, c: Bool, d: Bool) {
10
- (a ? b1️⃣)
11
- (a ? b : c ? d2️⃣)
12
- (a ? b ? c : d3️⃣)
13
- (a ? b ? c4️⃣)
14
- }
9
+ (a ? b1️⃣)
15
10
""" ,
16
11
diagnostics: [
17
- // TODO: Old parser expected error on line 2: expected ':' after '? ...' in ternary
18
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected ':' after '? ...' in ternary expression " ) ,
19
- DiagnosticSpec ( locationMarker: " 1️⃣ " , message: " expected expression in tuple " ) ,
20
- // TODO: Old parser expected error on line 3: expected ':' after '? ...' in ternary
21
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected ':' after '? ...' in ternary expression " ) ,
22
- DiagnosticSpec ( locationMarker: " 2️⃣ " , message: " expected expression in tuple " ) ,
23
- // TODO: Old parser expected error on line 4: expected ':' after '? ...' in ternary
24
- DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected ':' after '? ...' in ternary expression " ) ,
25
- DiagnosticSpec ( locationMarker: " 3️⃣ " , message: " expected expression in tuple " ) ,
26
- // TODO: Old parser expected error on line 5: expected ':' after '? ...' in ternary
27
- // TODO: Old parser expected error on line 5: expected ':' after '? ...' in ternary
28
- DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " expected ':' after '? ...' in ternary expression " ) ,
29
- DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " expected expression in tuple " ) ,
30
- DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " expected ':' after '? ...' in ternary expression " ) ,
31
- DiagnosticSpec ( locationMarker: " 4️⃣ " , message: " expected expression in tuple " ) ,
32
- ]
12
+ DiagnosticSpec ( message: " expected ':' and expression after '? ...' in ternary expression " , fixIts: [ " insert ':' and expression " ] ) ,
13
+ ] , fixedSource: " (a ? b: <#expression#>) "
14
+ )
15
+ }
16
+
17
+ func testInvalidIfExpr2( ) {
18
+ AssertParse (
19
+ """
20
+ (a ? b : c ? d1️⃣)
21
+ """ ,
22
+ diagnostics: [
23
+ DiagnosticSpec ( message: " expected ':' and expression after '? ...' in ternary expression " , fixIts: [ " insert ':' and expression " ] ) ,
24
+ ] , fixedSource: " (a ? b : c ? d: <#expression#>) "
25
+ )
26
+ }
27
+
28
+ func testInvalidIfExpr3( ) {
29
+ AssertParse (
30
+ """
31
+ (a ? b ? c : d1️⃣
32
+ """ ,
33
+ diagnostics: [
34
+ DiagnosticSpec ( message: " expected ':' and expression after '? ...' in ternary expression " , fixIts: [ " insert ':' and expression " ] ) ,
35
+ DiagnosticSpec ( message: " expected ')' to end tuple " )
36
+ ] , fixedSource: " (a ? b ? c : d: <#expression#>) "
37
+ )
38
+ }
39
+
40
+ func testInvalidIfExpr4( ) {
41
+ AssertParse (
42
+ """
43
+ (a ? b ? c1️⃣)
44
+ """ ,
45
+ diagnostics: [
46
+ DiagnosticSpec ( message: " expected ':' and expression after '? ...' in ternary expression " , fixIts: [ " insert ':' and expression " ] ) ,
47
+ DiagnosticSpec ( message: " expected ':' and expression after '? ...' in ternary expression " , fixIts: [ " insert ':' and expression " ] ) ,
48
+ ] , fixedSource: " (a ? b ? c: <#expression#>: <#expression#>) "
33
49
)
34
50
}
35
51
0 commit comments