Skip to content

Commit 82fcca1

Browse files
committed
Swift: Implement new data flow interface
1 parent cd77893 commit 82fcca1

9 files changed

+18
-13
lines changed

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
module DataFlow {
66
private import internal.DataFlowImplSpecific
77
private import codeql.dataflow.DataFlow
8-
import DataFlowMake<SwiftDataFlow>
8+
private import codeql.swift.elements.Location
9+
import DataFlowMake<Location, SwiftDataFlow>
910
import internal.DataFlowImpl1
1011
}

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module TaintTracking {
77
private import codeql.swift.dataflow.internal.DataFlowImplSpecific
88
private import codeql.swift.dataflow.internal.TaintTrackingImplSpecific
99
private import codeql.dataflow.TaintTracking
10-
import TaintFlowMake<SwiftDataFlow, SwiftTaintTracking>
10+
private import codeql.swift.elements.Location
11+
import TaintFlowMake<Location, SwiftDataFlow, SwiftTaintTracking>
1112
import codeql.swift.dataflow.internal.tainttracking1.TaintTrackingImpl
1213
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
private import DataFlowImplSpecific
22
private import codeql.dataflow.internal.DataFlowImpl
3-
import MakeImpl<SwiftDataFlow>
3+
private import codeql.swift.elements.Location
4+
import MakeImpl<Location, SwiftDataFlow>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
private import DataFlowImplSpecific
22
private import codeql.dataflow.internal.DataFlowImplCommon
3-
import MakeImplCommon<SwiftDataFlow>
3+
import codeql.swift.elements.Location
4+
import MakeImplCommon<Location, SwiftDataFlow>

swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplConsistency.qll

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ private import DataFlowImplSpecific
88
private import TaintTrackingImplSpecific
99
private import codeql.dataflow.internal.DataFlowImplConsistency
1010

11-
private module Input implements InputSig<SwiftDataFlow> { }
11+
private module Input implements InputSig<Location, SwiftDataFlow> { }
1212

13-
module Consistency = MakeConsistency<SwiftDataFlow, SwiftTaintTracking, Input>;
13+
module Consistency = MakeConsistency<Location, SwiftDataFlow, SwiftTaintTracking, Input>;

swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplSpecific.qll

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module Public {
1515
import DataFlowPublic
1616
}
1717

18-
module SwiftDataFlow implements InputSig {
18+
module SwiftDataFlow implements InputSig<Swift::Location> {
1919
import Private
2020
import Public
2121

swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Node extends TNode {
2626
* For more information, see
2727
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
2828
*/
29-
predicate hasLocationInfo(
29+
deprecated predicate hasLocationInfo(
3030
string filepath, int startline, int startcolumn, int endline, int endcolumn
3131
) {
3232
this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)

swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ private import DataFlowImplSpecific::Public
1111
private import DataFlowImplCommon
1212
private import codeql.swift.dataflow.ExternalFlow
1313

14-
module Input implements InputSig<DataFlowImplSpecific::SwiftDataFlow> {
14+
module Input implements InputSig<Location, DataFlowImplSpecific::SwiftDataFlow> {
1515
class SummarizedCallableBase = Function;
1616

1717
ArgumentPosition callbackSelfParameterPosition() { result instanceof ThisArgumentPosition }
@@ -102,14 +102,14 @@ module Input implements InputSig<DataFlowImplSpecific::SwiftDataFlow> {
102102
}
103103
}
104104

105-
private import Make<DataFlowImplSpecific::SwiftDataFlow, Input> as Impl
105+
private import Make<Location, DataFlowImplSpecific::SwiftDataFlow, Input> as Impl
106106

107107
private module StepsInput implements Impl::Private::StepsInputSig {
108108
DataFlowCall getACall(Public::SummarizedCallable sc) { result.asCall().getStaticTarget() = sc }
109109
}
110110

111111
module SourceSinkInterpretationInput implements
112-
Impl::Private::External::SourceSinkInterpretationInputSig<Location>
112+
Impl::Private::External::SourceSinkInterpretationInputSig
113113
{
114114
class Element = AstNode;
115115

@@ -222,7 +222,7 @@ module Private {
222222

223223
module External {
224224
import Impl::Private::External
225-
import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput>
225+
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
226226
}
227227

228228
/**

swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingImplSpecific.qll

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
private import codeql.dataflow.TaintTracking
66
private import DataFlowImplSpecific
7+
private import codeql.swift.elements.Location
78

8-
module SwiftTaintTracking implements InputSig<SwiftDataFlow> {
9+
module SwiftTaintTracking implements InputSig<Location, SwiftDataFlow> {
910
import TaintTrackingPrivate
1011
import TaintTrackingPublic
1112
}

0 commit comments

Comments
 (0)