File tree Expand file tree Collapse file tree 9 files changed +57
-18
lines changed
lib/codeql/swift/elements/decl
elements/decl/extensiondecl Expand file tree Collapse file tree 9 files changed +57
-18
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,9 @@ private import codeql.swift.generated.decl.ExtensionDecl
2
2
3
3
class ExtensionDecl extends Generated:: ExtensionDecl {
4
4
override string toString ( ) {
5
- result = "extension" // TODO: Once we extract the name of this one we can provide a better `toString`.
5
+ result = "extension of " + getExtendedTypeDecl ( ) .toString ( )
6
+ or
7
+ not exists ( getExtendedTypeDecl ( ) ) and
8
+ result = "extension"
6
9
}
7
10
}
Original file line number Diff line number Diff line change 231
231
| declarations.swift:132:5:132:15 | willSet | |
232
232
| declarations.swift:134:5:134:5 | self | |
233
233
| declarations.swift:134:5:134:14 | didSet | |
234
- | declarations.swift:138:1:142:1 | extension | |
234
+ | declarations.swift:138:1:142:1 | extension of Int | |
235
235
| declarations.swift:139:3:141:3 | id() | |
236
236
| declarations.swift:139:8:139:8 | self | |
237
237
| declarations.swift:144:1:144:7 | { ... } | |
Original file line number Diff line number Diff line change 1
- | extensions.swift:5:1:9:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 0 |
2
- | extensions.swift:11:1:15:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 0 |
3
- | extensions.swift:21:1:23:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 1 |
4
- | extensions.swift:27:1:29:1 | extension | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 2 |
1
+ | extensions.swift:5:1:9:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 0 |
2
+ | extensions.swift:11:1:15:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 0 |
3
+ | extensions.swift:21:1:23:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 1 |
4
+ | extensions.swift:27:1:29:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 2 |
Original file line number Diff line number Diff line change 1
- | extensions.swift:5:1:9:1 | extension | 0 | extensions.swift:6:5:6:37 | var ... = ... |
2
- | extensions.swift:5:1:9:1 | extension | 1 | extensions.swift:6:9:6:9 | x |
3
- | extensions.swift:5:1:9:1 | extension | 2 | extensions.swift:8:5:8:17 | foo() |
4
- | extensions.swift:11:1:15:1 | extension | 0 | extensions.swift:12:5:12:38 | var ... = ... |
5
- | extensions.swift:11:1:15:1 | extension | 1 | extensions.swift:12:9:12:9 | y |
6
- | extensions.swift:11:1:15:1 | extension | 2 | extensions.swift:14:5:14:17 | bar() |
7
- | extensions.swift:21:1:23:1 | extension | 0 | extensions.swift:22:5:22:17 | baz() |
8
- | extensions.swift:27:1:29:1 | extension | 0 | extensions.swift:28:5:28:17 | baz() |
1
+ | extensions.swift:5:1:9:1 | extension of S | 0 | extensions.swift:6:5:6:37 | var ... = ... |
2
+ | extensions.swift:5:1:9:1 | extension of S | 1 | extensions.swift:6:9:6:9 | x |
3
+ | extensions.swift:5:1:9:1 | extension of S | 2 | extensions.swift:8:5:8:17 | foo() |
4
+ | extensions.swift:11:1:15:1 | extension of C | 0 | extensions.swift:12:5:12:38 | var ... = ... |
5
+ | extensions.swift:11:1:15:1 | extension of C | 1 | extensions.swift:12:9:12:9 | y |
6
+ | extensions.swift:11:1:15:1 | extension of C | 2 | extensions.swift:14:5:14:17 | bar() |
7
+ | extensions.swift:21:1:23:1 | extension of S | 0 | extensions.swift:22:5:22:17 | baz() |
8
+ | extensions.swift:27:1:29:1 | extension of C | 0 | extensions.swift:28:5:28:17 | baz() |
Original file line number Diff line number Diff line change 1
- | extensions.swift:21:1:23:1 | extension | 0 | extensions.swift:17:1:19:1 | P1 |
2
- | extensions.swift:27:1:29:1 | extension | 0 | extensions.swift:17:1:19:1 | P1 |
3
- | extensions.swift:27:1:29:1 | extension | 1 | extensions.swift:25:1:25:14 | P2 |
1
+ | extensions.swift:21:1:23:1 | extension of S | 0 | extensions.swift:17:1:19:1 | P1 |
2
+ | extensions.swift:27:1:29:1 | extension of C | 0 | extensions.swift:17:1:19:1 | P1 |
3
+ | extensions.swift:27:1:29:1 | extension of C | 1 | extensions.swift:25:1:25:14 | P2 |
Original file line number Diff line number Diff line change @@ -4134,7 +4134,7 @@ declarations.swift:
4134
4134
# 90|
4135
4135
# 95| [Comment] // Or by adding an access declaration
4136
4136
# 95|
4137
- # 138| [ExtensionDecl] extension
4137
+ # 138| [ExtensionDecl] extension of Int
4138
4138
# 139| getMember(0): [ConcreteFuncDecl] id()
4139
4139
# 139| InterfaceType = (Int) -> () -> Int
4140
4140
# 139| getSelfParam(): [ParamDecl] self
Original file line number Diff line number Diff line change
1
+ | extensiondecl.swift:11:1:12:1 | extension of MyClass | getExtendedTypeDecl:MyClass |
2
+ | extensiondecl.swift:14:1:15:1 | extension of MyClass | getExtendedTypeDecl:MyClass, getProtocol(0):MyProtocol1, getProtocol(1):MyProtocol2 |
3
+ | extensiondecl.swift:17:1:18:1 | extension of Int | getExtendedTypeDecl:Int |
4
+ | extensiondecl.swift:20:1:21:1 | extension of String | getExtendedTypeDecl:String |
Original file line number Diff line number Diff line change
1
+ import swift
2
+
3
+ string describe ( ExtensionDecl e ) {
4
+ result = "getExtendedTypeDecl:" + e .getExtendedTypeDecl ( ) .toString ( )
5
+ or
6
+ exists ( int ix | result = "getProtocol(" + ix .toString ( ) + "):" + e .getProtocol ( ix ) .toString ( ) )
7
+ }
8
+
9
+ from ExtensionDecl e
10
+ where not e .getFile ( ) instanceof UnknownFile
11
+ select e , concat ( describe ( e ) , ", " )
Original file line number Diff line number Diff line change
1
+
2
+ protocol MyProtocol1 {
3
+ }
4
+
5
+ protocol MyProtocol2 {
6
+ }
7
+
8
+ class MyClass {
9
+ }
10
+
11
+ extension MyClass {
12
+ }
13
+
14
+ extension MyClass : MyProtocol1 , MyProtocol2 {
15
+ }
16
+
17
+ extension Int {
18
+ }
19
+
20
+ extension String {
21
+ }
You can’t perform that action at this time.
0 commit comments