@@ -76,14 +76,7 @@ public Node visit(AssignmentExpression s, Map<String, VariableInfo> t) {
76
76
}
77
77
78
78
final String variableName = ((VariableExpression ) s .target ).name ;
79
- final VariableInfo var ;
80
- if (t .containsKey (variableName )) {
81
- var = t .get (variableName );
82
- var .modifications ++;
83
- } else {
84
- var = new VariableInfo ();
85
- var .modifications = 1 ;
86
- }
79
+ final VariableInfo var = variableInfo (t , variableName );
87
80
88
81
if (s .operation == null && isValue (s .expression )) {
89
82
var .value = ((ValueExpression ) s .expression ).value ;
@@ -96,16 +89,7 @@ public Node visit(AssignmentExpression s, Map<String, VariableInfo> t) {
96
89
public Node visit (DestructuringAssignmentStatement s , Map <String , VariableInfo > t ) {
97
90
for (String variableName : s .variables ) {
98
91
if (variableName == null ) continue ;
99
-
100
- final VariableInfo var ;
101
- if (t .containsKey (variableName )) {
102
- var = t .get (variableName );
103
- var .modifications ++;
104
- } else {
105
- var = new VariableInfo ();
106
- var .modifications = 1 ;
107
- }
108
- t .put (variableName , var );
92
+ t .put (variableName , variableInfo (t , variableName ));
109
93
}
110
94
return super .visit (s , t );
111
95
}
@@ -114,15 +98,7 @@ public Node visit(DestructuringAssignmentStatement s, Map<String, VariableInfo>
114
98
public Node visit (FunctionDefineStatement s , Map <String , VariableInfo > t ) {
115
99
for (Argument argument : s .arguments ) {
116
100
final String variableName = argument .getName ();
117
- final VariableInfo var ;
118
- if (t .containsKey (variableName )) {
119
- var = t .get (variableName );
120
- var .modifications ++;
121
- } else {
122
- var = new VariableInfo ();
123
- var .modifications = 1 ;
124
- }
125
- t .put (variableName , var );
101
+ t .put (variableName , variableInfo (t , variableName ));
126
102
}
127
103
return super .visit (s , t );
128
104
}
@@ -132,6 +108,18 @@ public Node visit(MatchExpression s, Map<String, VariableInfo> t) {
132
108
// no visit match expression
133
109
return s ;
134
110
}
111
+
112
+ private VariableInfo variableInfo (Map <String , VariableInfo > t , final String variableName ) {
113
+ final VariableInfo var ;
114
+ if (t .containsKey (variableName )) {
115
+ var = t .get (variableName );
116
+ var .modifications ++;
117
+ } else {
118
+ var = new VariableInfo ();
119
+ var .modifications = 1 ;
120
+ }
121
+ return var ;
122
+ }
135
123
}
136
124
137
125
private class VariablesPropagator extends OptimizationVisitor <Map <String , Value >> {
0 commit comments