Python: Use TUnknown instead of TUnknownInstance.

This commit is contained in:
Taus Brock-Nannestad
2020-03-12 19:21:11 +01:00
parent 115bbf619d
commit 5c90becc1c
6 changed files with 9 additions and 22 deletions

View File

@@ -520,7 +520,7 @@ cached module PointsToInternal {
or
pointsTo(rhs, context, sequence, _) and
sequence.subscriptUnknown() and
value = TUnknownInstance(ObjectInternal::builtin("object"))
value = TUnknown()
)
}

View File

@@ -1,8 +1,10 @@
| a_simple.py:20 | ControlFlowNode for For | 20 |
| a_simple.py:20 | ControlFlowNode for seq | 18 |
| a_simple.py:21 | ControlFlowNode for x | 20 |
| a_simple.py:24 | ControlFlowNode for x | 23 |
| a_simple.py:29 | ControlFlowNode for For | 29 |
| a_simple.py:29 | ControlFlowNode for x | 27 |
| a_simple.py:30 | ControlFlowNode for p | 29 |
| a_simple.py:35 | ControlFlowNode for Subscript | 35 |
| a_simple.py:36 | ControlFlowNode for Subscript | 36 |
| a_simple.py:40 | ControlFlowNode for a | 38 |
@@ -17,7 +19,11 @@
| a_simple.py:50 | ControlFlowNode for g | 38 |
| a_simple.py:51 | ControlFlowNode for h | 38 |
| a_simple.py:52 | ControlFlowNode for i | 38 |
| a_simple.py:54 | ControlFlowNode for l | 53 |
| a_simple.py:55 | ControlFlowNode for m | 53 |
| a_simple.py:56 | ControlFlowNode for a | 38 |
| a_simple.py:57 | ControlFlowNode for s | 56 |
| a_simple.py:58 | ControlFlowNode for u | 56 |
| b_condition.py:5 | ControlFlowNode for IfExp | 5 |
| b_condition.py:5 | ControlFlowNode for cond | 5 |
| b_condition.py:5 | ControlFlowNode for unknown | 5 |
@@ -235,6 +241,7 @@
| r_regressions.py:39 | ControlFlowNode for y | 27 |
| r_regressions.py:43 | ControlFlowNode for x | 43 |
| r_regressions.py:43 | ControlFlowNode for x() | 43 |
| r_regressions.py:44 | ControlFlowNode for data | 43 |
| r_regressions.py:52 | ControlFlowNode for msg | 51 |
| r_regressions.py:64 | ControlFlowNode for do_validation | 64 |
| r_regressions.py:64 | ControlFlowNode for do_validation() | 64 |

View File

@@ -22,12 +22,10 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| a_simple.py:18 | ControlFlowNode for multi_loop | Function multi_loop | builtin-class function | 18 | import |
| a_simple.py:19 | ControlFlowNode for None | NoneType None | builtin-class NoneType | 19 | runtime |
| a_simple.py:19 | ControlFlowNode for x | NoneType None | builtin-class NoneType | 19 | runtime |
| a_simple.py:21 | ControlFlowNode for x | x | builtin-class object | 20 | runtime |
| a_simple.py:23 | ControlFlowNode for FunctionExpr | Function with_definition | builtin-class function | 23 | import |
| a_simple.py:23 | ControlFlowNode for with_definition | Function with_definition | builtin-class function | 23 | import |
| a_simple.py:27 | ControlFlowNode for FunctionExpr | Function multi_loop_in_try | builtin-class function | 27 | import |
| a_simple.py:27 | ControlFlowNode for multi_loop_in_try | Function multi_loop_in_try | builtin-class function | 27 | import |
| a_simple.py:30 | ControlFlowNode for p | p | builtin-class object | 29 | runtime |
| a_simple.py:31 | ControlFlowNode for KeyError | builtin-class KeyError | builtin-class type | 31 | runtime |
| a_simple.py:34 | ControlFlowNode for FunctionExpr | Function f | builtin-class function | 34 | import |
| a_simple.py:34 | ControlFlowNode for args | args | builtin-class tuple | 34 | runtime |
@@ -75,10 +73,6 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| a_simple.py:53 | ControlFlowNode for IntegerLiteral | int 2 | builtin-class int | 53 | runtime |
| a_simple.py:53 | ControlFlowNode for Tuple | BinaryExpr | builtin-class tuple | 53 | runtime |
| a_simple.py:53 | ControlFlowNode for Tuple | Tuple | builtin-class tuple | 53 | runtime |
| a_simple.py:54 | ControlFlowNode for l | l | builtin-class object | 53 | runtime |
| a_simple.py:55 | ControlFlowNode for m | m | builtin-class object | 53 | runtime |
| a_simple.py:57 | ControlFlowNode for s | s | builtin-class object | 56 | runtime |
| a_simple.py:58 | ControlFlowNode for u | u | builtin-class object | 56 | runtime |
| b_condition.py:4 | ControlFlowNode for FunctionExpr | Function f | builtin-class function | 4 | import |
| b_condition.py:4 | ControlFlowNode for f | Function f | builtin-class function | 4 | import |
| b_condition.py:5 | ControlFlowNode for IfExp | NoneType None | builtin-class NoneType | 5 | runtime |
@@ -1084,7 +1078,6 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| r_regressions.py:42 | ControlFlowNode for FunctionExpr | Function find_library | builtin-class function | 42 | import |
| r_regressions.py:42 | ControlFlowNode for find_library | Function find_library | builtin-class function | 42 | import |
| r_regressions.py:43 | ControlFlowNode for List | List | builtin-class list | 43 | runtime |
| r_regressions.py:44 | ControlFlowNode for data | data | builtin-class object | 43 | runtime |
| r_regressions.py:46 | ControlFlowNode for FunctionExpr | Function fail | builtin-class function | 46 | import |
| r_regressions.py:46 | ControlFlowNode for fail | Function fail | builtin-class function | 46 | import |
| r_regressions.py:49 | ControlFlowNode for C | class C | builtin-class type | 49 | import |

View File

@@ -22,12 +22,10 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| a_simple.py:18 | ControlFlowNode for multi_loop | Function multi_loop | builtin-class function | 18 |
| a_simple.py:19 | ControlFlowNode for None | NoneType None | builtin-class NoneType | 19 |
| a_simple.py:19 | ControlFlowNode for x | NoneType None | builtin-class NoneType | 19 |
| a_simple.py:21 | ControlFlowNode for x | x | builtin-class object | 20 |
| a_simple.py:23 | ControlFlowNode for FunctionExpr | Function with_definition | builtin-class function | 23 |
| a_simple.py:23 | ControlFlowNode for with_definition | Function with_definition | builtin-class function | 23 |
| a_simple.py:27 | ControlFlowNode for FunctionExpr | Function multi_loop_in_try | builtin-class function | 27 |
| a_simple.py:27 | ControlFlowNode for multi_loop_in_try | Function multi_loop_in_try | builtin-class function | 27 |
| a_simple.py:30 | ControlFlowNode for p | p | builtin-class object | 29 |
| a_simple.py:31 | ControlFlowNode for KeyError | builtin-class KeyError | builtin-class type | 31 |
| a_simple.py:34 | ControlFlowNode for FunctionExpr | Function f | builtin-class function | 34 |
| a_simple.py:34 | ControlFlowNode for args | args | builtin-class tuple | 34 |
@@ -75,10 +73,6 @@ WARNING: Predicate points_to has been deprecated and may be removed in future (P
| a_simple.py:53 | ControlFlowNode for IntegerLiteral | int 2 | builtin-class int | 53 |
| a_simple.py:53 | ControlFlowNode for Tuple | BinaryExpr | builtin-class tuple | 53 |
| a_simple.py:53 | ControlFlowNode for Tuple | Tuple | builtin-class tuple | 53 |
| a_simple.py:54 | ControlFlowNode for l | l | builtin-class object | 53 |
| a_simple.py:55 | ControlFlowNode for m | m | builtin-class object | 53 |
| a_simple.py:57 | ControlFlowNode for s | s | builtin-class object | 56 |
| a_simple.py:58 | ControlFlowNode for u | u | builtin-class object | 56 |
| b_condition.py:4 | ControlFlowNode for FunctionExpr | Function f | builtin-class function | 4 |
| b_condition.py:4 | ControlFlowNode for f | Function f | builtin-class function | 4 |
| b_condition.py:5 | ControlFlowNode for IfExp | NoneType None | builtin-class NoneType | 5 |

View File

@@ -11,10 +11,8 @@
| 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:21 | ControlFlowNode for x | runtime | instance of object | builtin-class object |
| 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:30 | ControlFlowNode for p | runtime | instance of object | builtin-class object |
| 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 |
@@ -61,10 +59,6 @@
| a_simple.py:53 | ControlFlowNode for IntegerLiteral | runtime | int 2 | builtin-class int |
| a_simple.py:53 | ControlFlowNode for Tuple | runtime | (int 1, ) | builtin-class tuple |
| a_simple.py:53 | ControlFlowNode for Tuple | runtime | (int 2, ) | builtin-class tuple |
| a_simple.py:54 | ControlFlowNode for l | runtime | instance of object | builtin-class object |
| a_simple.py:55 | ControlFlowNode for m | runtime | instance of object | builtin-class object |
| a_simple.py:57 | ControlFlowNode for s | runtime | instance of object | builtin-class object |
| a_simple.py:58 | ControlFlowNode for u | runtime | instance of object | builtin-class object |
| b_condition.py:4 | ControlFlowNode for FunctionExpr | import | Function f | builtin-class function |
| b_condition.py:5 | ControlFlowNode for IfExp | runtime | None | builtin-class NoneType |
| b_condition.py:5 | ControlFlowNode for None | runtime | None | builtin-class NoneType |
@@ -870,7 +864,6 @@
| r_regressions.py:36 | ControlFlowNode for z | runtime | int 0 | builtin-class int |
| r_regressions.py:42 | ControlFlowNode for FunctionExpr | import | Function find_library | builtin-class function |
| r_regressions.py:43 | ControlFlowNode for List | runtime | List | builtin-class list |
| r_regressions.py:44 | ControlFlowNode for data | runtime | instance of object | builtin-class object |
| r_regressions.py:46 | ControlFlowNode for FunctionExpr | import | Function fail | builtin-class function |
| r_regressions.py:49 | ControlFlowNode for ClassExpr | import | class C | builtin-class type |
| r_regressions.py:49 | ControlFlowNode for object | import | builtin-class object | builtin-class type |

View File

@@ -1,3 +1,3 @@
| test.py:5:7:5:9 | ControlFlowNode for foo | int 42 |
| test.py:11:11:11:13 | ControlFlowNode for foo | int 1 |
| test.py:17:11:17:13 | ControlFlowNode for foo | <MISSING pointsTo()> |
| test.py:17:11:17:13 | ControlFlowNode for foo | int 2 |