mirror of
https://github.com/github/codeql.git
synced 2026-06-16 02:11:09 +02:00
Python: Deprecate importNode
Unsurprisingly, the only thing affected by this was the `import-helper` tests. These have lost all of the results relating to `ImportMember`s, but apart from that the underlying behaviour should be the same. I also limited the test to only `CfgNode`s, as a bunch of `EssaNode`s suddenly appeared when I switched to API graphs. Finally, I used `API::moduleImport` with a dotted name in the type tracking tests. This goes against the API graphs interface, but I think it's more correct for this use case, as these type trackers are doing the "module attribute lookup" bit manually.
This commit is contained in:
@@ -18,6 +18,10 @@ predicate localFlowStep(Node nodeFrom, Node nodeTo) { simpleLocalFlowStep(nodeFr
|
||||
predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) }
|
||||
|
||||
/**
|
||||
* DEPRECATED. Use the API graphs library instead.
|
||||
*
|
||||
* For a drop-in replacement, use `API::moduleImport(name).getAUse()`.
|
||||
*
|
||||
* Gets a `Node` that refers to the module referenced by `name`.
|
||||
* Note that for the statement `import pkg.mod`, the new variable introduced is `pkg` that is a
|
||||
* reference to the module `pkg`.
|
||||
@@ -37,7 +41,7 @@ predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) }
|
||||
* `mypkg/foo.py` but the variable `foo` containing `42` -- however, `import mypkg.foo` will always cause `mypkg.foo`
|
||||
* to refer to the module.
|
||||
*/
|
||||
Node importNode(string name) {
|
||||
deprecated Node importNode(string name) {
|
||||
exists(Variable var, Import imp, Alias alias |
|
||||
alias = imp.getAName() and
|
||||
alias.getAsname() = var.getAStore() and
|
||||
|
||||
Reference in New Issue
Block a user