Skip to content

Commit d64fd62

Browse files
committed
Swift: resolve TODOs.
1 parent 8acc09b commit d64fd62

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

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

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -390,14 +390,6 @@ predicate matchesSignature(AbstractFunctionDecl func, string signature) {
390390
paramsString(func) = signature
391391
}
392392

393-
private NominalTypeDecl resolveExtensions(IterableDeclContext decl) {
394-
// TODO: this should be a method on IterableDeclContext
395-
result = decl.(NominalTypeDecl)
396-
or
397-
result = decl.(ExtensionDecl).getExtendedTypeDecl()
398-
// TODO: or a protocol added by the extension
399-
}
400-
401393
/**
402394
* Gets the element in module `namespace` that satisfies the following properties:
403395
* 1. If the element is a member of a class-like type, then the class-like type has name `type`
@@ -434,10 +426,10 @@ private Element interpretElement0(
434426
result = method
435427
|
436428
subtypes = true and
437-
resolveExtensions(decl) = nomTypeDecl.getADerivedTypeDecl*()
429+
decl.resolveExtensions() = nomTypeDecl.getADerivedTypeDecl*()
438430
or
439431
subtypes = false and
440-
resolveExtensions(decl) = nomTypeDecl
432+
decl.resolveExtensions() = nomTypeDecl
441433
)
442434
or
443435
// Fields
@@ -449,10 +441,10 @@ private Element interpretElement0(
449441
result = field
450442
|
451443
subtypes = true and
452-
resolveExtensions(decl) = nomTypeDecl.getADerivedTypeDecl*()
444+
decl.resolveExtensions() = nomTypeDecl.getADerivedTypeDecl*()
453445
or
454446
subtypes = false and
455-
resolveExtensions(decl) = nomTypeDecl
447+
decl.resolveExtensions() = nomTypeDecl
456448
)
457449
)
458450
}
Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
1-
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
21
private import codeql.swift.generated.decl.IterableDeclContext
2+
private import codeql.swift.elements.decl.NominalTypeDecl
3+
private import codeql.swift.elements.decl.ExtensionDecl
34

4-
class IterableDeclContext extends Generated::IterableDeclContext { }
5+
class IterableDeclContext extends Generated::IterableDeclContext {
6+
/**
7+
* Gets the `NominalTypeDecl` corresponding to this `IterableDeclContext`
8+
* resolving an extension to the extended type declaration.
9+
*/
10+
NominalTypeDecl resolveExtensions() {
11+
result = this.(NominalTypeDecl)
12+
or
13+
result = this.(ExtensionDecl).getExtendedTypeDecl()
14+
}
15+
}

0 commit comments

Comments
 (0)