|
12 | 12 |
|
13 | 13 | import com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder;
|
14 | 14 | import com.ibm.wala.cast.ipa.callgraph.GlobalObjectKey;
|
15 |
| -import com.ibm.wala.cast.ir.ssa.AstPropertyRead; |
16 |
| -import com.ibm.wala.cast.ir.ssa.EachElementGetInstruction; |
17 | 15 | import com.ibm.wala.cast.python.ipa.summaries.BuiltinFunctions.BuiltinFunction;
|
18 | 16 | import com.ibm.wala.cast.python.ir.PythonLanguage;
|
19 | 17 | import com.ibm.wala.cast.python.ssa.PythonInstructionVisitor;
|
20 | 18 | import com.ibm.wala.cast.python.ssa.PythonInvokeInstruction;
|
21 |
| -import com.ibm.wala.cast.python.ssa.PythonPropertyRead; |
22 | 19 | import com.ibm.wala.cast.python.types.PythonTypes;
|
23 | 20 | import com.ibm.wala.classLoader.IClass;
|
24 | 21 | import com.ibm.wala.classLoader.IField;
|
|
40 | 37 | import com.ibm.wala.ssa.SSAArrayStoreInstruction;
|
41 | 38 | import com.ibm.wala.ssa.SSABinaryOpInstruction;
|
42 | 39 | import com.ibm.wala.ssa.SSAGetInstruction;
|
43 |
| -import com.ibm.wala.ssa.SSAInstruction; |
44 | 40 | import com.ibm.wala.ssa.SymbolTable;
|
45 | 41 | import com.ibm.wala.types.FieldReference;
|
46 | 42 | import com.ibm.wala.types.TypeReference;
|
@@ -179,42 +175,6 @@ public String toString() {
|
179 | 175 | super.visitGet(instruction);
|
180 | 176 | }
|
181 | 177 |
|
182 |
| - @Override |
183 |
| - public void visitPropertyRead(AstPropertyRead instruction) { |
184 |
| - super.visitPropertyRead(instruction); |
185 |
| - |
186 |
| - if (instruction instanceof PythonPropertyRead) { |
187 |
| - PythonPropertyRead ppr = (PythonPropertyRead) instruction; |
188 |
| - SSAInstruction memberRefDef = du.getDef(ppr.getMemberRef()); |
189 |
| - |
190 |
| - if (memberRefDef != null && memberRefDef instanceof EachElementGetInstruction) { |
191 |
| - // most likely a for each "property." |
192 |
| - final PointerKey memberRefKey = this.getPointerKeyForLocal(ppr.getMemberRef()); |
193 |
| - |
194 |
| - // for each def of the property read. |
195 |
| - for (int i = 0; i < ppr.getNumberOfDefs(); i++) { |
196 |
| - PointerKey defKey = this.getPointerKeyForLocal(ppr.getDef(i)); |
197 |
| - |
198 |
| - // add an assignment constraint straight away as the traversal variable won't have a |
199 |
| - // non-empty points-to set but still may be used for a dataflow analysis. |
200 |
| - if (this.system.newConstraint(defKey, assignOperator, memberRefKey)) |
201 |
| - logger.fine( |
202 |
| - () -> |
203 |
| - "Added new system constraint for global read from: " |
204 |
| - + defKey |
205 |
| - + " to: " |
206 |
| - + memberRefKey |
207 |
| - + " for instruction: " |
208 |
| - + instruction |
209 |
| - + "."); |
210 |
| - else |
211 |
| - logger.fine( |
212 |
| - () -> "No constraint added for global read in instruction: " + instruction + "."); |
213 |
| - } |
214 |
| - } |
215 |
| - } |
216 |
| - } |
217 |
| - |
218 | 178 | @Override
|
219 | 179 | public void visitPythonInvoke(PythonInvokeInstruction inst) {
|
220 | 180 | visitInvokeInternal(inst, new DefaultInvariantComputer());
|
|
0 commit comments