Skip to content

Commit 7f694f3

Browse files
committed
Swift: add EnumIsCase test
1 parent dfe276a commit 7f694f3

File tree

6 files changed

+45
-4
lines changed

6 files changed

+45
-4
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
| enum_is_case.swift:4:1:4:17 | ... is some | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:4:22:4:22 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some |
2+
| enum_is_case.swift:5:1:5:32 | ... is some | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getTypeRepr: | enum_is_case.swift:5:37:5:37 | SimpleIdentTypeRepr | getElement: | file://:0:0:0:0 | some |
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+
| 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+
| 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 |
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// generated by codegen/codegen.py
2+
import codeql.swift.elements
3+
import TestUtils
4+
5+
from EnumIsCaseExpr x, Expr getSubExpr, TypeRepr getTypeRepr, EnumElementDecl getElement
6+
where
7+
toBeTested(x) and
8+
not x.isUnknown() and
9+
getSubExpr = x.getSubExpr() and
10+
getTypeRepr = x.getTypeRepr() and
11+
getElement = x.getElement()
12+
select x, "getSubExpr:", getSubExpr, "getTypeRepr:", getTypeRepr, "getElement:", getElement
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
| enum_is_case.swift:4:1:4:17 | ... is some | Bool |
2+
| enum_is_case.swift:5:1:5:32 | ... is some | Bool |
3+
| enum_is_case.swift:6:1:6:1 | ... is some | Bool |
4+
| enum_is_case.swift:7:1:7:1 | ... is some | Bool |
5+
| enum_is_case.swift:9:1:9:19 | ... is some | Bool |
6+
| enum_is_case.swift:14:1:14:18 | ... is some | Bool |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// generated by codegen/codegen.py
2+
import codeql.swift.elements
3+
import TestUtils
4+
5+
from EnumIsCaseExpr x
6+
where toBeTested(x) and not x.isUnknown()
7+
select x, x.getType()

swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/MISSING_SOURCE.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// EnumIsCaseExpr despite its generic nature is actually only generated when an `is` expression passes through an
2+
// intrinsic Optional check
3+
4+
Optional.some(42) is Int
5+
Optional.some(Optional.some(42)) is Int
6+
42 is Int?
7+
42 is Int??
8+
9+
[Optional.some(42)] is [Int]
10+
[42] is [Int?]
11+
12+
class X {}
13+
class Y: X {}
14+
Optional.some(Y()) is X

0 commit comments

Comments
 (0)