mirror of
https://github.com/github/codeql.git
synced 2025-12-18 18:10:39 +01:00
Swift: add EnumIsCase test
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
|
| 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 |
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
// generated by codegen/codegen.py
|
||||||
|
import codeql.swift.elements
|
||||||
|
import TestUtils
|
||||||
|
|
||||||
|
from EnumIsCaseExpr x, Expr getSubExpr, TypeRepr getTypeRepr, EnumElementDecl getElement
|
||||||
|
where
|
||||||
|
toBeTested(x) and
|
||||||
|
not x.isUnknown() and
|
||||||
|
getSubExpr = x.getSubExpr() and
|
||||||
|
getTypeRepr = x.getTypeRepr() and
|
||||||
|
getElement = x.getElement()
|
||||||
|
select x, "getSubExpr:", getSubExpr, "getTypeRepr:", getTypeRepr, "getElement:", getElement
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
| enum_is_case.swift:4:1:4:17 | ... is some | Bool |
|
||||||
|
| enum_is_case.swift:5:1:5:32 | ... is some | Bool |
|
||||||
|
| enum_is_case.swift:6:1:6:1 | ... is some | Bool |
|
||||||
|
| enum_is_case.swift:7:1:7:1 | ... is some | Bool |
|
||||||
|
| enum_is_case.swift:9:1:9:19 | ... is some | Bool |
|
||||||
|
| enum_is_case.swift:14:1:14:18 | ... is some | Bool |
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// generated by codegen/codegen.py
|
||||||
|
import codeql.swift.elements
|
||||||
|
import TestUtils
|
||||||
|
|
||||||
|
from EnumIsCaseExpr x
|
||||||
|
where toBeTested(x) and not x.isUnknown()
|
||||||
|
select x, x.getType()
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
// generated by codegen/codegen.py
|
|
||||||
|
|
||||||
After a swift source file is added in this directory and codegen/codegen.py is run again, test queries
|
|
||||||
will appear and this file will be deleted
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
// EnumIsCaseExpr despite its generic nature is actually only generated when an `is` expression passes through an
|
||||||
|
// intrinsic Optional check
|
||||||
|
|
||||||
|
Optional.some(42) is Int
|
||||||
|
Optional.some(Optional.some(42)) is Int
|
||||||
|
42 is Int?
|
||||||
|
42 is Int??
|
||||||
|
|
||||||
|
[Optional.some(42)] is [Int]
|
||||||
|
[42] is [Int?]
|
||||||
|
|
||||||
|
class X {}
|
||||||
|
class Y: X {}
|
||||||
|
Optional.some(Y()) is X
|
||||||
Reference in New Issue
Block a user