Swift: add ExtensionDecl QL test

This commit is contained in:
Paolo Tranquilli
2023-01-17 12:49:53 +01:00
parent 51bd1ef1e1
commit 8906e101cb
9 changed files with 74 additions and 5 deletions

View File

@@ -687,7 +687,9 @@ ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getBaseType.ql 4ace6176
ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql 3a0927f87a21d69bfc309f5f7faedb3d0cc2956c071b16c38b2b4acd36f24ea9 aafed56a1744579f05b3817adef6a5fd011d1b5cb7da2db230a43b6f55a04649
ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql 621870b7dbeaeefa93cbbfc102e97810b15d39b49db685019c9e3cbf2423ffef e110630f0ba8f588e7f8ebc56a1a31c2ca2f22f2cc763baa76854beb3b3a4ece
ql/test/extractor-tests/generated/decl/EnumElementDecl/MISSING_SOURCE.txt 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd
ql/test/extractor-tests/generated/decl/ExtensionDecl/MISSING_SOURCE.txt 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd
ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql 21116b63a8803d5de425089484e755c8599369e8392d315feba27a6ea123690e 074cb9f6dabbe7ba9cb6fc7a9049fd65c02bc0dcad322e454a6058617d58d85f
ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql e8c9815756cd3d82abfb421b1e38d6381e48938a21f798fd9abd93686acc070b 2574ead6e511f41ba416e831e176ecdaac27dde410157a4ee472a680f922dd20
ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql 8d1c6a2b7cb381a81d11775f0d1cfb13ee04dd27dc742e00a72d676f21481dde 430e5b9ed7eccd90383e362ffa5e512704883304c711b13c9110a57ae282bb40
ql/test/extractor-tests/generated/decl/GenericTypeParamDecl/MISSING_SOURCE.txt 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd 7e714762ffb48c436102027d560fb5addc1f7dc6dd6936b06e0d3cca031d67fd
ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql 52e572682b381d6a3c4d38d2902c1fca3a371eec3859c49735fcab8eb5ae23c8 0b5fdf388f887c50ff333f662f6321851e923166ab5916bb07d1613452d495e1
ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql 914165306a2eb5c8039750e1e03bda156a684946abc8709d786b4144d9c9eb3b 5e87dfd99858ae257506415369bff937a731b6309dac2242b03ea79ead045fc1

View File

@@ -0,0 +1,4 @@
| extensions.swift:5:1:9:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfGenericTypeParams: | 0 | getNumberOfMembers: | 3 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S |
| extensions.swift:11:1:15:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfGenericTypeParams: | 0 | getNumberOfMembers: | 3 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C |
| extensions.swift:21:1:23:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfGenericTypeParams: | 0 | getNumberOfMembers: | 1 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S |
| extensions.swift:27:1:29:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfGenericTypeParams: | 0 | getNumberOfMembers: | 1 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C |

View File

@@ -0,0 +1,16 @@
// generated by codegen/codegen.py
import codeql.swift.elements
import TestUtils
from
ExtensionDecl x, ModuleDecl getModule, int getNumberOfGenericTypeParams, int getNumberOfMembers,
NominalTypeDecl getExtendedTypeDecl
where
toBeTested(x) and
not x.isUnknown() and
getModule = x.getModule() and
getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and
getNumberOfMembers = x.getNumberOfMembers() and
getExtendedTypeDecl = x.getExtendedTypeDecl()
select x, "getModule:", getModule, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams,
"getNumberOfMembers:", getNumberOfMembers, "getExtendedTypeDecl:", getExtendedTypeDecl

View File

@@ -0,0 +1,7 @@
// generated by codegen/codegen.py
import codeql.swift.elements
import TestUtils
from ExtensionDecl x, int index
where toBeTested(x) and not x.isUnknown()
select x, index, x.getGenericTypeParam(index)

View File

@@ -0,0 +1,8 @@
| extensions.swift:5:1:9:1 | extension | 0 | extensions.swift:6:5:6:37 | var ... = ... |
| extensions.swift:5:1:9:1 | extension | 1 | extensions.swift:6:9:6:9 | x |
| extensions.swift:5:1:9:1 | extension | 2 | extensions.swift:8:5:8:17 | foo() |
| extensions.swift:11:1:15:1 | extension | 0 | extensions.swift:12:5:12:38 | var ... = ... |
| extensions.swift:11:1:15:1 | extension | 1 | extensions.swift:12:9:12:9 | y |
| extensions.swift:11:1:15:1 | extension | 2 | extensions.swift:14:5:14:17 | bar() |
| extensions.swift:21:1:23:1 | extension | 0 | extensions.swift:22:5:22:17 | baz() |
| extensions.swift:27:1:29:1 | extension | 0 | extensions.swift:28:5:28:17 | baz() |

View File

@@ -0,0 +1,7 @@
// generated by codegen/codegen.py
import codeql.swift.elements
import TestUtils
from ExtensionDecl x, int index
where toBeTested(x) and not x.isUnknown()
select x, index, x.getMember(index)

View File

@@ -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

View File

@@ -0,0 +1,29 @@
struct S {}
class C {}
extension S {
var x : Int { get { return 42 } }
func foo() {}
}
extension C {
var y : Int { get { return 404 } }
func bar() {}
}
protocol P1 {
func baz()
}
extension S : P1 {
func baz() {}
}
protocol P2 {}
extension C : P1, P2 {
func baz() {}
}