mirror of
https://github.com/github/codeql.git
synced 2026-04-27 17:55:19 +02:00
Swift: Untangle the confusion between 'getParameter' and 'asParameter'.
This commit is contained in:
@@ -163,9 +163,9 @@ private module Cached {
|
||||
private predicate localSsaFlowStepUseUse(Ssa::Definition def, Node nodeFrom, Node nodeTo) {
|
||||
def.adjacentReadPair(nodeFrom.getCfgNode(), nodeTo.getCfgNode()) and
|
||||
(
|
||||
nodeTo instanceof InoutReturnNode
|
||||
nodeTo instanceof InoutReturnNodeImpl
|
||||
implies
|
||||
nodeTo.(InoutReturnNode).getParameter() = def.getSourceVariable().asVarDecl()
|
||||
nodeTo.(InoutReturnNodeImpl).getParameter() = def.getSourceVariable().asVarDecl()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ private module Cached {
|
||||
* Holds if `nodeFrom` is a parameter node, and `nodeTo` is a corresponding SSA node.
|
||||
*/
|
||||
private predicate localFlowSsaParamInput(Node nodeFrom, Node nodeTo) {
|
||||
nodeTo = getParameterDefNode(nodeFrom.(ParameterNode).getParameter())
|
||||
nodeTo = getParameterDefNode(nodeFrom.asParameter())
|
||||
}
|
||||
|
||||
private predicate localFlowStepCommon(Node nodeFrom, Node nodeTo) {
|
||||
@@ -193,9 +193,9 @@ private module Cached {
|
||||
nodeFrom.asDefinition() = def and
|
||||
nodeTo.getCfgNode() = def.getAFirstRead() and
|
||||
(
|
||||
nodeTo instanceof InoutReturnNode
|
||||
nodeTo instanceof InoutReturnNodeImpl
|
||||
implies
|
||||
nodeTo.(InoutReturnNode).getParameter() = def.getSourceVariable().asVarDecl()
|
||||
nodeTo.(InoutReturnNodeImpl).getParameter() = def.getSourceVariable().asVarDecl()
|
||||
)
|
||||
or
|
||||
// use-use flow
|
||||
@@ -394,7 +394,7 @@ private module ParameterNodes {
|
||||
predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) { none() }
|
||||
|
||||
/** Gets the parameter associated with this node, if any. */
|
||||
override ParamDecl getParameter() { none() }
|
||||
ParamDecl getParameter() { none() }
|
||||
}
|
||||
|
||||
class SourceParameterNode extends ParameterNodeImpl, TSourceParameterNode {
|
||||
@@ -700,7 +700,7 @@ private module ReturnNodes {
|
||||
result = TDataFlowFunc(param.getDeclaringFunction())
|
||||
}
|
||||
|
||||
override ParamDecl getParameter() { result = param }
|
||||
ParamDecl getParameter() { result = param }
|
||||
|
||||
override Location getLocationImpl() { result = exit.getLocation() }
|
||||
|
||||
@@ -952,7 +952,7 @@ private CaptureFlow::ClosureNode asClosureNode(Node n) {
|
||||
result.(CaptureFlow::ExprPostUpdateNode).getExpr() =
|
||||
n.(PostUpdateNode).getPreUpdateNode().asExpr()
|
||||
or
|
||||
result.(CaptureFlow::ParameterNode).getParameter() = n.getParameter()
|
||||
result.(CaptureFlow::ParameterNode).getParameter() = n.asParameter()
|
||||
or
|
||||
result.(CaptureFlow::ThisParameterNode).getCallable() = n.(ClosureSelfParameterNode).getClosure()
|
||||
or
|
||||
|
||||
@@ -55,7 +55,7 @@ class Node extends TNode {
|
||||
/**
|
||||
* Gets the parameter that corresponds to this node, if any.
|
||||
*/
|
||||
ParamDecl getParameter() { none() }
|
||||
ParamDecl asParameter() { none() }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,7 +101,7 @@ class ParameterNode extends Node instanceof ParameterNodeImpl {
|
||||
result = this.(ParameterNodeImpl).getEnclosingCallable()
|
||||
}
|
||||
|
||||
override ParamDecl getParameter() { result = this.(ParameterNodeImpl).getParameter() }
|
||||
override ParamDecl asParameter() { result = this.(ParameterNodeImpl).getParameter() }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -156,7 +156,7 @@ ExprNode exprNode(DataFlowExpr e) { result.asExpr() = e }
|
||||
/**
|
||||
* Gets the node corresponding to the value of parameter `p` at function entry.
|
||||
*/
|
||||
ParameterNode parameterNode(ParamDecl p) { result.getParameter() = p }
|
||||
ParameterNode parameterNode(ParamDecl p) { result.asParameter() = p }
|
||||
|
||||
/**
|
||||
* Holds if data flows from `nodeFrom` to `nodeTo` in exactly one local
|
||||
|
||||
@@ -66,7 +66,7 @@ private class WKNavigationDelegateSource extends RemoteFlowSource {
|
||||
] and
|
||||
p.getDeclaringFunction() = f and
|
||||
p.getIndex() = 1 and
|
||||
this.(DataFlow::ParameterNode).getParameter() = p
|
||||
this.asParameter() = p
|
||||
)
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ private class JsExportedSource extends RemoteFlowSource {
|
||||
base.getEnclosingDecl().asNominalTypeDecl() instanceof JsExportedProto and
|
||||
adopter.getEnclosingDecl().asNominalTypeDecl() instanceof JsExportedType
|
||||
|
|
||||
this.(DataFlow::ParameterNode).getParameter().getDeclaringFunction() = adopter and
|
||||
this.asParameter().getDeclaringFunction() = adopter and
|
||||
pragma[only_bind_out](adopter.getName()) = pragma[only_bind_out](base.getName())
|
||||
)
|
||||
or
|
||||
|
||||
Reference in New Issue
Block a user