Skip to content

Commit 0d41d4e

Browse files
committed
Swift: for consistancy, lets have a simple hasName function as well.
1 parent b24a27d commit 0d41d4e

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

swift/ql/lib/codeql/swift/elements/decl/AbstractFunctionDecl.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@ private import codeql.swift.generated.decl.AbstractFunctionDecl
22

33
class AbstractFunctionDecl extends AbstractFunctionDeclBase {
44
override string toString() { result = this.getName() }
5+
6+
/**
7+
* Holds if this function is called `funcName`.
8+
*/
9+
predicate hasName(string funcName) { this.getName() = funcName }
510
}
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
| abstractfunctiondecl.swift:2:1:2:15 | func1() | getName:func1() |
2-
| abstractfunctiondecl.swift:5:2:5:16 | func2() | MethodDecl, getName:func2(), hasQualifiedName(2):Class1.func2(), hasQualifiedName(3):abstractfunctiondecl.Class1.func2() |
3-
| abstractfunctiondecl.swift:8:3:8:17 | func3() | MethodDecl, getName:func3(), hasQualifiedName(2):Class1.Class2.func3(), hasQualifiedName(3):abstractfunctiondecl.Class1.Class2.func3() |
4-
| abstractfunctiondecl.swift:13:2:13:13 | func4() | MethodDecl, getName:func4(), hasQualifiedName(2):Protocol1.func4(), hasQualifiedName(3):abstractfunctiondecl.Protocol1.func4() |
5-
| abstractfunctiondecl.swift:17:2:17:16 | func4() | MethodDecl, getName:func4(), hasQualifiedName(2):Class3.func4(), hasQualifiedName(3):abstractfunctiondecl.Class3.func4() |
6-
| abstractfunctiondecl.swift:21:2:21:16 | func5() | MethodDecl, getName:func5(), hasQualifiedName(2):Class3.func5(), hasQualifiedName(3):abstractfunctiondecl.Class3.func5() |
7-
| abstractfunctiondecl.swift:25:2:25:16 | func6() | MethodDecl, getName:func6(), hasQualifiedName(2):Struct1.func6(), hasQualifiedName(3):abstractfunctiondecl.Struct1.func6() |
8-
| abstractfunctiondecl.swift:31:2:31:16 | func7() | MethodDecl, getName:func7(), hasQualifiedName(2):Enum1.func7(), hasQualifiedName(3):abstractfunctiondecl.Enum1.func7() |
1+
| abstractfunctiondecl.swift:2:1:2:15 | func1() | getName:func1(), hasName:func1() |
2+
| abstractfunctiondecl.swift:5:2:5:16 | func2() | MethodDecl, getName:func2(), hasName:func2(), hasQualifiedName(2):Class1.func2(), hasQualifiedName(3):abstractfunctiondecl.Class1.func2() |
3+
| abstractfunctiondecl.swift:8:3:8:17 | func3() | MethodDecl, getName:func3(), hasName:func3(), hasQualifiedName(2):Class1.Class2.func3(), hasQualifiedName(3):abstractfunctiondecl.Class1.Class2.func3() |
4+
| abstractfunctiondecl.swift:13:2:13:13 | func4() | MethodDecl, getName:func4(), hasName:func4(), hasQualifiedName(2):Protocol1.func4(), hasQualifiedName(3):abstractfunctiondecl.Protocol1.func4() |
5+
| abstractfunctiondecl.swift:17:2:17:16 | func4() | MethodDecl, getName:func4(), hasName:func4(), hasQualifiedName(2):Class3.func4(), hasQualifiedName(3):abstractfunctiondecl.Class3.func4() |
6+
| abstractfunctiondecl.swift:21:2:21:16 | func5() | MethodDecl, getName:func5(), hasName:func5(), hasQualifiedName(2):Class3.func5(), hasQualifiedName(3):abstractfunctiondecl.Class3.func5() |
7+
| abstractfunctiondecl.swift:25:2:25:16 | func6() | MethodDecl, getName:func6(), hasName:func6(), hasQualifiedName(2):Struct1.func6(), hasQualifiedName(3):abstractfunctiondecl.Struct1.func6() |
8+
| abstractfunctiondecl.swift:31:2:31:16 | func7() | MethodDecl, getName:func7(), hasName:func7(), hasQualifiedName(2):Enum1.func7(), hasQualifiedName(3):abstractfunctiondecl.Enum1.func7() |

swift/ql/test/library-tests/elements/decl/abstractfunctiondecl/abstractfunctiondecl.ql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import swift
22

33
string describe(AbstractFunctionDecl f) {
44
result = "getName:" + f.getName()
5+
or exists(string a |
6+
f.hasName(a) and
7+
result = "hasName:" + a
8+
)
59
or
610
(
711
result = "MethodDecl" and f instanceof MethodDecl

0 commit comments

Comments
 (0)