mirror of
https://github.com/github/codeql.git
synced 2025-12-20 18:56:32 +01:00
exclude self parameter from the API-graph edge for keywordParameter
This commit is contained in:
@@ -610,9 +610,11 @@ module API {
|
||||
ref.asExpr() = fn.getInnerScope().getArg(i)
|
||||
)
|
||||
or
|
||||
exists(string name |
|
||||
exists(string name, PY::Parameter param |
|
||||
lbl = Label::keywordParameter(name) and
|
||||
ref.asExpr() = fn.getInnerScope().getArgByName(name)
|
||||
param = fn.getInnerScope().getArgByName(name) and
|
||||
not param.isSelf() and
|
||||
ref.asExpr() = param
|
||||
)
|
||||
or
|
||||
lbl = Label::selfParameter() and
|
||||
|
||||
@@ -85,10 +85,8 @@ isSource
|
||||
| test.py:86:49:86:59 | ControlFlowNode for getSource() | test-source |
|
||||
| test.py:87:56:87:66 | ControlFlowNode for getSource() | test-source |
|
||||
| test.py:101:29:101:31 | ControlFlowNode for arg | test-source |
|
||||
| test.py:104:18:104:21 | ControlFlowNode for self | test-source |
|
||||
| test.py:104:24:104:29 | ControlFlowNode for param1 | test-source |
|
||||
| test.py:104:32:104:37 | ControlFlowNode for param2 | test-source |
|
||||
| test.py:107:18:107:21 | ControlFlowNode for self | test-source |
|
||||
| test.py:107:24:107:28 | ControlFlowNode for name1 | test-source |
|
||||
| test.py:107:31:107:35 | ControlFlowNode for name2 | test-source |
|
||||
syntaxErrors
|
||||
|
||||
@@ -101,8 +101,8 @@ class OtherSubClass (ArgPos.MyClass):
|
||||
def otherSelfTest(self, arg, named=2, otherName=3): # test that Parameter[0] hits `arg`.
|
||||
pass
|
||||
|
||||
def anyParam(self, param1, param2): # Parameter[any] matches all 3.
|
||||
def anyParam(self, param1, param2): # Parameter[any] matches all non-self parameters
|
||||
pass
|
||||
|
||||
def anyNamed(self, name1, name2=2): # Parameter[any-named] matches all 3.
|
||||
def anyNamed(self, name1, name2=2): # Parameter[any-named] matches all non-self named parameters
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user