Python: Enhance points-to to support type-hint analysis.

This commit is contained in:
Mark Shannon
2019-08-09 16:23:07 +01:00
parent 3fab5140a7
commit 6c6e35f541
18 changed files with 193 additions and 4 deletions

View File

@@ -143,6 +143,8 @@
| Module pointsto_test | 161 | ControlFlowNode for ClassExpr | class Derived3 |
| Module pointsto_test | 161 | ControlFlowNode for Derived3 | class Derived3 |
| Module pointsto_test | 164 | ControlFlowNode for Base | class Base |
| Module pointsto_test | 164 | ControlFlowNode for Base() | Base() |
| Module pointsto_test | 164 | ControlFlowNode for thing | Base() |
| Module pointsto_test | 167 | ControlFlowNode for FunctionExpr | Function multiple_assignment |
| Module pointsto_test | 167 | ControlFlowNode for multiple_assignment | Function multiple_assignment |
| Module pointsto_test | 173 | ControlFlowNode for Base2 | class Base2 |

View File

@@ -233,6 +233,8 @@
| 161 | ControlFlowNode for ClassExpr | class Derived3 |
| 161 | ControlFlowNode for Derived3 | class Derived3 |
| 164 | ControlFlowNode for Base | class Base |
| 164 | ControlFlowNode for Base() | Base() |
| 164 | ControlFlowNode for thing | Base() |
| 167 | ControlFlowNode for FunctionExpr | Function multiple_assignment |
| 167 | ControlFlowNode for multiple_assignment | Function multiple_assignment |
| 168 | ControlFlowNode for Tuple | Tuple |

View File

@@ -79,6 +79,7 @@
| h_classes.py:0 | Module code.h_classes | f | Function f |
| h_classes.py:0 | Module code.h_classes | k | Function k |
| h_classes.py:0 | Module code.h_classes | sys | Module sys |
| h_classes.py:0 | Module code.h_classes | thing | Base() |
| h_classes.py:3 | Class C | __init__ | Function __init__ |
| h_classes.py:3 | Class C | x | 'C_x' |
| h_classes.py:23 | Class Base | __init__ | Function __init__ |

View File

@@ -403,6 +403,8 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| h_classes.py:39 | ControlFlowNode for ClassExpr | class Derived3 | builtin-class type | 39 | import |
| h_classes.py:39 | ControlFlowNode for Derived3 | class Derived3 | builtin-class type | 39 | import |
| h_classes.py:42 | ControlFlowNode for Base | class Base | builtin-class type | 23 | import |
| h_classes.py:42 | ControlFlowNode for Base() | Base() | *UNKNOWN TYPE* | 42 | import |
| h_classes.py:42 | ControlFlowNode for thing | Base() | *UNKNOWN TYPE* | 42 | import |
| h_classes.py:45 | ControlFlowNode for FunctionExpr | Function f | builtin-class function | 45 | import |
| h_classes.py:45 | ControlFlowNode for f | Function f | builtin-class function | 45 | import |
| h_classes.py:48 | ControlFlowNode for ClassExpr | class D | builtin-class type | 48 | import |

View File

@@ -500,6 +500,8 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| h_classes.py:39 | ControlFlowNode for ClassExpr | class Derived3 | builtin-class type | 39 |
| h_classes.py:39 | ControlFlowNode for Derived3 | class Derived3 | builtin-class type | 39 |
| h_classes.py:42 | ControlFlowNode for Base | class Base | builtin-class type | 23 |
| h_classes.py:42 | ControlFlowNode for Base() | Base() | *UNKNOWN TYPE* | 42 |
| h_classes.py:42 | ControlFlowNode for thing | Base() | *UNKNOWN TYPE* | 42 |
| h_classes.py:45 | ControlFlowNode for FunctionExpr | Function f | builtin-class function | 45 |
| h_classes.py:45 | ControlFlowNode for f | Function f | builtin-class function | 45 |
| h_classes.py:48 | ControlFlowNode for ClassExpr | class D | builtin-class type | 48 |

View File

@@ -11,8 +11,10 @@
| a_simple.py:16 | ControlFlowNode for d | runtime | instance of dict | builtin-class dict |
| a_simple.py:18 | ControlFlowNode for FunctionExpr | import | Function multi_loop | builtin-class function |
| a_simple.py:19 | ControlFlowNode for None | runtime | None | builtin-class NoneType |
| a_simple.py:20 | ControlFlowNode for Tuple | runtime | (?, ?, ) | builtin-class tuple |
| a_simple.py:23 | ControlFlowNode for FunctionExpr | import | Function with_definition | builtin-class function |
| a_simple.py:27 | ControlFlowNode for FunctionExpr | import | Function multi_loop_in_try | builtin-class function |
| a_simple.py:29 | ControlFlowNode for Tuple | runtime | (?, ?, ) | builtin-class tuple |
| a_simple.py:31 | ControlFlowNode for KeyError | runtime | builtin-class KeyError | builtin-class type |
| a_simple.py:34 | ControlFlowNode for FunctionExpr | import | Function f | builtin-class function |
| a_simple.py:35 | ControlFlowNode for IntegerLiteral | runtime | int 0 | builtin-class int |
@@ -36,11 +38,14 @@
| a_simple.py:40 | ControlFlowNode for Tuple | runtime | (Unknown value, Unknown value, Unknown value, ) | builtin-class tuple |
| a_simple.py:40 | ControlFlowNode for b | runtime | 'b' | builtin-class str |
| a_simple.py:40 | ControlFlowNode for c | runtime | 'c' | builtin-class str |
| a_simple.py:41 | ControlFlowNode for Tuple | runtime | (?, ?, ?, ) | builtin-class tuple |
| a_simple.py:41 | ControlFlowNode for t | runtime | (int 1, int 2, int 3, ) | builtin-class tuple |
| a_simple.py:42 | ControlFlowNode for Tuple | runtime | (?, ?, ?, ) | builtin-class tuple |
| a_simple.py:42 | ControlFlowNode for w | runtime | (Unknown value, 'b', 'c', ) | builtin-class tuple |
| a_simple.py:42 | ControlFlowNode for w | runtime | (Unknown value, 'b', Unknown value, ) | builtin-class tuple |
| a_simple.py:42 | ControlFlowNode for w | runtime | (Unknown value, Unknown value, 'c', ) | builtin-class tuple |
| a_simple.py:42 | ControlFlowNode for w | runtime | (Unknown value, Unknown value, Unknown value, ) | builtin-class tuple |
| a_simple.py:49 | ControlFlowNode for Tuple | runtime | (?, ?, ?, ) | builtin-class tuple |
| a_simple.py:49 | ControlFlowNode for Tuple | runtime | (Unknown value, 'b', 'c', ) | builtin-class tuple |
| a_simple.py:49 | ControlFlowNode for Tuple | runtime | (Unknown value, 'b', Unknown value, ) | builtin-class tuple |
| a_simple.py:49 | ControlFlowNode for Tuple | runtime | (Unknown value, Unknown value, 'c', ) | builtin-class tuple |