Swift: Do the same for methods.

This commit is contained in:
Geoffrey White
2022-12-01 00:01:42 +00:00
parent 5a4d188255
commit 0a0cfc34e7
3 changed files with 16 additions and 10 deletions

View File

@@ -438,18 +438,18 @@ private Element interpretElement0(
)
or
// Member functions
exists(NominalType nomType, IterableDeclContext decl, MethodDecl method |
exists(NominalTypeDecl nomTypeDecl, IterableDeclContext decl, MethodDecl method |
method.getName() = name and
method = decl.getAMember() and
nomType.getFullName() = type and
nomTypeDecl.getFullName() = type and
matchesSignature(method, signature) and
result = method
|
subtypes = true and
getDeclType(decl) = nomType.getADerivedType*()
resolveExtensions(decl) = nomTypeDecl.getADerivedTypeDecl*()
or
subtypes = false and
getDeclType(decl) = nomType
resolveExtensions(decl) = nomTypeDecl
)
or
// Fields

View File

@@ -14,15 +14,21 @@
| generics.swift:12:9:12:24 | call to source3() | external |
| generics.swift:48:9:48:17 | .source1 | external |
| generics.swift:49:9:49:17 | .source2 | external |
| generics.swift:50:9:50:25 | call to source3() | external |
| generics.swift:51:9:51:18 | .source1 | external |
| generics.swift:52:9:52:18 | .source2 | external |
| generics.swift:53:9:53:26 | call to source3() | external |
| generics.swift:54:9:54:17 | .source1 | external |
| generics.swift:55:9:55:17 | .source2 | external |
| generics.swift:56:9:56:25 | call to source3() | external |
| generics.swift:57:9:57:17 | .source4 | external |
| generics.swift:58:9:58:17 | .source5 | external |
| generics.swift:59:9:59:25 | call to source6() | external |
| generics.swift:60:9:60:17 | .source7 | external |
| generics.swift:61:9:61:25 | call to source8() | external |
| generics.swift:62:9:62:18 | .source1 | external |
| generics.swift:63:9:63:18 | .source2 | external |
| generics.swift:64:9:64:26 | call to source3() | external |
| generics.swift:65:9:65:18 | .source9 | external |
| generics.swift:66:9:66:18 | .source10 | external |
| generics.swift:67:9:67:27 | call to source11() | external |

View File

@@ -47,21 +47,21 @@ extension MyDerived2
func useDerived(generic: MyGeneric<Int>, generic2: MyGeneric<Any>, derived: MyDerived<Int>, derived2: MyDerived2) {
_ = generic.source1 // SOURCE
_ = generic.source2 // SOURCE
_ = generic.source3() // SOURCE [NOT DETECTED]
_ = generic.source3() // SOURCE
_ = generic2.source1 // SOURCE
_ = generic2.source2 // SOURCE
_ = generic2.source3() // SOURCE [NOT DETECTED]
_ = generic2.source3() // SOURCE
_ = derived.source1 // SOURCE
_ = derived.source2 // SOURCE
_ = derived.source3() // SOURCE [NOT DETECTED]
_ = derived.source3() // SOURCE
_ = derived.source4 // SOURCE
_ = derived.source5 // SOURCE
_ = derived.source6() // SOURCE [NOT DETECTED]
_ = derived.source6() // SOURCE
_ = derived.source7 // SOURCE
_ = derived.source8() // SOURCE [NOT DETECTED]
_ = derived.source8() // SOURCE
_ = derived2.source1 // SOURCE
_ = derived2.source2 // SOURCE
_ = derived2.source3() // SOURCE [NOT DETECTED]
_ = derived2.source3() // SOURCE
_ = derived2.source9 // SOURCE
_ = derived2.source10 // SOURCE
_ = derived2.source11() // SOURCE