mirror of
https://github.com/github/codeql.git
synced 2025-12-22 11:46:32 +01:00
Python: Don't import module as module_attr
For `from <pkg> import <attr>` we would use to treat the `<pkg>` (ImportExpr) as a definition of the name `<attr>`. Since this removes bad import-flow, and nothing broke, I'm guessing this was never intentional.
This commit is contained in:
@@ -95,7 +95,7 @@ module ImportResolution {
|
||||
)
|
||||
or
|
||||
exists(Alias a |
|
||||
defn.asExpr() = [a.getValue(), a.getValue().(ImportMember).getModule()] and
|
||||
defn.asExpr() = a.getValue() and
|
||||
a.getAsname().(Name).getId() = name and
|
||||
defn.getScope() = m
|
||||
)
|
||||
|
||||
@@ -114,39 +114,30 @@
|
||||
| main | _indent_level | trace.py:3:17:3:17 | ControlFlowNode for IntegerLiteral |
|
||||
| main | _print | trace.py:5:10:5:14 | ControlFlowNode for print |
|
||||
| main | _status | trace.py:21:11:21:11 | ControlFlowNode for IntegerLiteral |
|
||||
| main | aliased_subpackage | main.py:54:6:54:12 | ControlFlowNode for ImportExpr |
|
||||
| main | aliased_subpackage | main.py:54:21:54:52 | ControlFlowNode for ImportMember |
|
||||
| main | aliased_subpackage | main.py:65:8:65:25 | ControlFlowNode for ImportExpr |
|
||||
| main | bar_attr | main.py:42:6:42:8 | ControlFlowNode for ImportExpr |
|
||||
| main | bar_attr | main.py:42:17:42:24 | ControlFlowNode for ImportMember |
|
||||
| main | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
|
||||
| main | clashing_attr | main.py:83:6:83:15 | ControlFlowNode for ImportExpr |
|
||||
| main | clashing_attr | main.py:83:24:83:36 | ControlFlowNode for ImportMember |
|
||||
| main | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
|
||||
| main | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
|
||||
| main | foo | main.py:27:8:27:10 | ControlFlowNode for ImportExpr |
|
||||
| main | foo_alias | main.py:34:8:34:10 | ControlFlowNode for ImportExpr |
|
||||
| main | if_then_else_defined | main.py:93:6:93:17 | ControlFlowNode for ImportExpr |
|
||||
| main | if_then_else_defined | main.py:93:26:93:45 | ControlFlowNode for ImportMember |
|
||||
| main | if_then_else_refined | main.py:100:8:100:27 | ControlFlowNode for ImportExpr |
|
||||
| main | local_import | main.py:57:1:57:19 | ControlFlowNode for FunctionExpr |
|
||||
| main | namespace_module_attr | main.py:79:10:79:43 | ControlFlowNode for ImportExpr |
|
||||
| main | namespace_module_attr | main.py:79:52:79:72 | ControlFlowNode for ImportMember |
|
||||
| main | non_clashing_submodule | main.py:83:6:83:15 | ControlFlowNode for ImportExpr |
|
||||
| main | non_clashing_submodule | main.py:83:39:83:60 | ControlFlowNode for ImportMember |
|
||||
| main | package | main.py:69:8:69:25 | ControlFlowNode for ImportExpr |
|
||||
| main | package | main.py:73:8:73:35 | ControlFlowNode for ImportExpr |
|
||||
| main | package_attr_alias | main.py:50:6:50:12 | ControlFlowNode for ImportExpr |
|
||||
| main | package_attr_alias | main.py:50:21:50:54 | ControlFlowNode for ImportMember |
|
||||
| main | print | trace.py:7:1:7:27 | ControlFlowNode for FunctionExpr |
|
||||
| main | print_function | main.py:21:6:21:15 | ControlFlowNode for ImportExpr |
|
||||
| main | print_function | main.py:21:24:21:37 | ControlFlowNode for ImportMember |
|
||||
| main | print_function | trace.py:1:24:1:37 | ControlFlowNode for ImportMember |
|
||||
| main | refined | main.py:97:8:97:14 | ControlFlowNode for ImportExpr |
|
||||
| main | simplistic_reexport | main.py:103:8:103:26 | ControlFlowNode for ImportExpr |
|
||||
| main | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
|
||||
| main | subpackage2_attr | package/subpackage2/__init__.py:4:20:4:37 | ControlFlowNode for Str |
|
||||
| main | subpackage_attr | main.py:46:6:46:23 | ControlFlowNode for ImportExpr |
|
||||
| main | subpackage_attr | main.py:46:32:46:46 | ControlFlowNode for ImportMember |
|
||||
| main | sys | main.py:22:8:22:10 | ControlFlowNode for ImportExpr |
|
||||
| namespace_package.namespace_module | __all__ | trace.py:52:11:52:46 | ControlFlowNode for List |
|
||||
@@ -198,9 +189,7 @@
|
||||
| package.subpackage.__init__ | check | trace.py:26:1:26:61 | ControlFlowNode for FunctionExpr |
|
||||
| package.subpackage.__init__ | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
|
||||
| package.subpackage.__init__ | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
|
||||
| package.subpackage.__init__ | imported_attr | package/subpackage/__init__.py:7:6:7:7 | ControlFlowNode for ImportExpr |
|
||||
| package.subpackage.__init__ | imported_attr | package/subpackage/__init__.py:7:16:7:55 | ControlFlowNode for ImportMember |
|
||||
| package.subpackage.__init__ | irrelevant_attr | package/subpackage/__init__.py:11:6:11:15 | ControlFlowNode for ImportExpr |
|
||||
| package.subpackage.__init__ | irrelevant_attr | package/subpackage/__init__.py:11:24:11:38 | ControlFlowNode for ImportMember |
|
||||
| package.subpackage.__init__ | print | trace.py:7:1:7:27 | ControlFlowNode for FunctionExpr |
|
||||
| package.subpackage.__init__ | print_function | trace.py:1:24:1:37 | ControlFlowNode for ImportMember |
|
||||
@@ -241,7 +230,6 @@
|
||||
| simplistic_reexport | _indent_level | trace.py:3:17:3:17 | ControlFlowNode for IntegerLiteral |
|
||||
| simplistic_reexport | _print | trace.py:5:10:5:14 | ControlFlowNode for print |
|
||||
| simplistic_reexport | _status | trace.py:21:11:21:11 | ControlFlowNode for IntegerLiteral |
|
||||
| simplistic_reexport | bar_attr | simplistic_reexport.py:6:6:6:8 | ControlFlowNode for ImportExpr |
|
||||
| simplistic_reexport | bar_attr | simplistic_reexport.py:6:17:6:24 | ControlFlowNode for ImportMember |
|
||||
| simplistic_reexport | bar_attr | simplistic_reexport.py:9:12:9:24 | ControlFlowNode for Str |
|
||||
| simplistic_reexport | baz_attr | baz.py:4:12:4:21 | ControlFlowNode for Str |
|
||||
@@ -260,6 +248,5 @@
|
||||
| trace | enter | trace.py:11:1:11:21 | ControlFlowNode for FunctionExpr |
|
||||
| trace | exit | trace.py:16:1:16:20 | ControlFlowNode for FunctionExpr |
|
||||
| trace | print | trace.py:7:1:7:27 | ControlFlowNode for FunctionExpr |
|
||||
| trace | print_function | trace.py:1:6:1:15 | ControlFlowNode for ImportExpr |
|
||||
| trace | print_function | trace.py:1:24:1:37 | ControlFlowNode for ImportMember |
|
||||
| trace | status | trace.py:23:1:23:13 | ControlFlowNode for FunctionExpr |
|
||||
|
||||
@@ -101,7 +101,7 @@ import if_then_else_refined # $ imports=if_then_else_refined as=if_then_else_ref
|
||||
check("if_then_else_refined.src", if_then_else_refined.src, if_then_else_refined.src, globals()) #$ prints=SOURCE
|
||||
|
||||
import simplistic_reexport # $ imports=simplistic_reexport as=simplistic_reexport
|
||||
check("simplistic_reexport.bar_attr", simplistic_reexport.bar_attr, "overwritten", globals()) #$ prints=overwritten SPURIOUS: prints="<module bar>" prints=bar_attr
|
||||
check("simplistic_reexport.bar_attr", simplistic_reexport.bar_attr, "overwritten", globals()) #$ prints=overwritten SPURIOUS: prints=bar_attr
|
||||
check("simplistic_reexport.baz_attr", simplistic_reexport.baz_attr, "overwritten", globals()) #$ prints=overwritten SPURIOUS: prints=baz_attr
|
||||
|
||||
exit(__file__)
|
||||
|
||||
Reference in New Issue
Block a user