File tree Expand file tree Collapse file tree 3 files changed +22
-4
lines changed Expand file tree Collapse file tree 3 files changed +22
-4
lines changed Original file line number Diff line number Diff line change 3
3
| enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getTypeRepr: | enum_is_case.swift:6:7:6:10 | ...? | getElement: | file://:0:0:0:0 | some |
4
4
| enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getTypeRepr: | enum_is_case.swift:7:7:7:11 | ...? | getElement: | file://:0:0:0:0 | some |
5
5
| enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getTypeRepr: | enum_is_case.swift:9:24:9:28 | [...] | getElement: | file://:0:0:0:0 | some |
6
- | enum_is_case.swift:14:1:14:18 | ... is some | getSubExpr: | enum_is_case.swift:14:1:14:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:14:23:14:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some |
6
+ | enum_is_case.swift:20:1:20:18 | ... is some | getSubExpr: | enum_is_case.swift:20:1:20:18 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:20:23:20:23 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some |
7
+ | enum_is_case.swift:22:1:22:5 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:5 | [...] | getTypeRepr: | enum_is_case.swift:22:10:22:12 | [...] | getElement: | file://:0:0:0:0 | some |
8
+ | enum_is_case.swift:23:1:23:10 | ... is some | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getTypeRepr: | enum_is_case.swift:23:15:23:25 | [... : ...] | getElement: | file://:0:0:0:0 | some |
9
+ | enum_is_case.swift:24:1:24:10 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:10 | [...] | getTypeRepr: | enum_is_case.swift:24:15:24:25 | [... : ...] | getElement: | file://:0:0:0:0 | some |
10
+ | enum_is_case.swift:25:1:25:8 | ... is some | getSubExpr: | enum_is_case.swift:25:1:25:8 | call to ... | getTypeRepr: | enum_is_case.swift:25:13:25:18 | ...<...> | getElement: | file://:0:0:0:0 | some |
Original file line number Diff line number Diff line change 3
3
| enum_is_case.swift:6:1:6:1 | ... is some | Bool |
4
4
| enum_is_case.swift:7:1:7:1 | ... is some | Bool |
5
5
| enum_is_case.swift:9:1:9:19 | ... is some | Bool |
6
- | enum_is_case.swift:14:1:14:18 | ... is some | Bool |
6
+ | enum_is_case.swift:20:1:20:18 | ... is some | Bool |
7
+ | enum_is_case.swift:22:1:22:5 | ... is some | Bool |
8
+ | enum_is_case.swift:23:1:23:10 | ... is some | Bool |
9
+ | enum_is_case.swift:24:1:24:10 | ... is some | Bool |
10
+ | enum_is_case.swift:25:1:25:8 | ... is some | Bool |
Original file line number Diff line number Diff line change 1
1
// EnumIsCaseExpr despite its generic nature is actually only generated when an `is` expression passes through an
2
- // intrinsic Optional check
2
+ // intrinsic Optional check, or an array, dictionary or set downcast
3
3
4
4
Optional . some ( 42 ) is Int
5
5
Optional . some ( Optional . some ( 42 ) ) is Int
@@ -9,6 +9,16 @@ Optional.some(Optional.some(42)) is Int
9
9
[ Optional . some ( 42 ) ] is [ Int ]
10
10
[ 42 ] is [ Int ? ]
11
11
12
- class X { }
12
+ class X : Hashable {
13
+ static func == ( lhs: X , rhs: X ) -> Bool { return true }
14
+ func hash( into hasher: inout Hasher ) { }
15
+ }
16
+
13
17
class Y : X { }
18
+
14
19
Optional . some ( Y ( ) ) is X
20
+
21
+ [ X ( ) ] is [ Y ]
22
+ [ " x " : X ( ) ] is [ String : Y ]
23
+ [ " x " : X ( ) ] is [ String : Y ]
24
+ Set < X > ( ) is Set < Y >
You can’t perform that action at this time.
0 commit comments