Skip to content

Commit 0a0cfc3

Browse files
committed
Swift: Do the same for methods.
1 parent 5a4d188 commit 0a0cfc3

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,18 +438,18 @@ private Element interpretElement0(
438438
)
439439
or
440440
// Member functions
441-
exists(NominalType nomType, IterableDeclContext decl, MethodDecl method |
441+
exists(NominalTypeDecl nomTypeDecl, IterableDeclContext decl, MethodDecl method |
442442
method.getName() = name and
443443
method = decl.getAMember() and
444-
nomType.getFullName() = type and
444+
nomTypeDecl.getFullName() = type and
445445
matchesSignature(method, signature) and
446446
result = method
447447
|
448448
subtypes = true and
449-
getDeclType(decl) = nomType.getADerivedType*()
449+
resolveExtensions(decl) = nomTypeDecl.getADerivedTypeDecl*()
450450
or
451451
subtypes = false and
452-
getDeclType(decl) = nomType
452+
resolveExtensions(decl) = nomTypeDecl
453453
)
454454
or
455455
// Fields

swift/ql/test/library-tests/dataflow/flowsources/FlowSources.expected

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,21 @@
1414
| generics.swift:12:9:12:24 | call to source3() | external |
1515
| generics.swift:48:9:48:17 | .source1 | external |
1616
| generics.swift:49:9:49:17 | .source2 | external |
17+
| generics.swift:50:9:50:25 | call to source3() | external |
1718
| generics.swift:51:9:51:18 | .source1 | external |
1819
| generics.swift:52:9:52:18 | .source2 | external |
20+
| generics.swift:53:9:53:26 | call to source3() | external |
1921
| generics.swift:54:9:54:17 | .source1 | external |
2022
| generics.swift:55:9:55:17 | .source2 | external |
23+
| generics.swift:56:9:56:25 | call to source3() | external |
2124
| generics.swift:57:9:57:17 | .source4 | external |
2225
| generics.swift:58:9:58:17 | .source5 | external |
26+
| generics.swift:59:9:59:25 | call to source6() | external |
2327
| generics.swift:60:9:60:17 | .source7 | external |
28+
| generics.swift:61:9:61:25 | call to source8() | external |
2429
| generics.swift:62:9:62:18 | .source1 | external |
2530
| generics.swift:63:9:63:18 | .source2 | external |
31+
| generics.swift:64:9:64:26 | call to source3() | external |
2632
| generics.swift:65:9:65:18 | .source9 | external |
2733
| generics.swift:66:9:66:18 | .source10 | external |
2834
| generics.swift:67:9:67:27 | call to source11() | external |

swift/ql/test/library-tests/dataflow/flowsources/generics.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,21 @@ extension MyDerived2
4747
func useDerived(generic: MyGeneric<Int>, generic2: MyGeneric<Any>, derived: MyDerived<Int>, derived2: MyDerived2) {
4848
_ = generic.source1 // SOURCE
4949
_ = generic.source2 // SOURCE
50-
_ = generic.source3() // SOURCE [NOT DETECTED]
50+
_ = generic.source3() // SOURCE
5151
_ = generic2.source1 // SOURCE
5252
_ = generic2.source2 // SOURCE
53-
_ = generic2.source3() // SOURCE [NOT DETECTED]
53+
_ = generic2.source3() // SOURCE
5454
_ = derived.source1 // SOURCE
5555
_ = derived.source2 // SOURCE
56-
_ = derived.source3() // SOURCE [NOT DETECTED]
56+
_ = derived.source3() // SOURCE
5757
_ = derived.source4 // SOURCE
5858
_ = derived.source5 // SOURCE
59-
_ = derived.source6() // SOURCE [NOT DETECTED]
59+
_ = derived.source6() // SOURCE
6060
_ = derived.source7 // SOURCE
61-
_ = derived.source8() // SOURCE [NOT DETECTED]
61+
_ = derived.source8() // SOURCE
6262
_ = derived2.source1 // SOURCE
6363
_ = derived2.source2 // SOURCE
64-
_ = derived2.source3() // SOURCE [NOT DETECTED]
64+
_ = derived2.source3() // SOURCE
6565
_ = derived2.source9 // SOURCE
6666
_ = derived2.source10 // SOURCE
6767
_ = derived2.source11() // SOURCE

0 commit comments

Comments
 (0)