mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +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