MCPcopy Create free account
hub / github.com/LFYSec/MScan / DefaultIR

Class DefaultIR

src/main/java/pascal/taie/ir/DefaultIR.java:42–167  ·  view source on GitHub ↗

Default implementation of IR. The data structures in this class are immutable.

Source from the content-addressed store, hash-verified

40 * The data structures in this class are immutable.
41 */
42public class DefaultIR extends AbstractResultHolder implements IR {
43
44 private final JMethod method;
45
46 private final Var thisVar;
47
48 private final List<Var> params;
49
50 private final List<Var> vars;
51
52 private final List<Var> returnVars;
53
54 private final Indexer<Var> varIndexer;
55
56 private final List<Stmt> stmts;
57
58 private final List<ExceptionEntry> exceptionEntries;
59
60 public DefaultIR(
61 JMethod method, Var thisVar,
62 List<Var> params, Set<Var> returnVars, List<Var> vars,
63 List<Stmt> stmts, List<ExceptionEntry> exceptionEntries) {
64 this.method = method;
65 this.thisVar = thisVar;
66 this.params = List.copyOf(params);
67 this.returnVars = List.copyOf(returnVars);
68 this.vars = List.copyOf(vars);
69 this.varIndexer = new VarIndexer();
70 this.stmts = List.copyOf(stmts);
71 this.exceptionEntries = List.copyOf(exceptionEntries);
72 }
73
74 @Override
75 public JMethod getMethod() {
76 return method;
77 }
78
79 @Override
80 @Nullable
81 public Var getThis() {
82 return thisVar;
83 }
84
85 @Override
86 public List<Var> getParams() {
87 return params;
88 }
89
90 @Override
91 public Var getParam(int i) {
92 return params.get(i);
93 }
94
95 @Override
96 public boolean isParam(Var var) {
97 return params.contains(var);
98 }
99

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected