@@ -76,14 +76,7 @@ public Node visit(AssignmentExpression s, Map<String, VariableInfo> t) {
7676 }
7777
7878 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 );
8780
8881 if (s .operation == null && isValue (s .expression )) {
8982 var .value = ((ValueExpression ) s .expression ).value ;
@@ -96,16 +89,7 @@ public Node visit(AssignmentExpression s, Map<String, VariableInfo> t) {
9689 public Node visit (DestructuringAssignmentStatement s , Map <String , VariableInfo > t ) {
9790 for (String variableName : s .variables ) {
9891 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 ));
10993 }
11094 return super .visit (s , t );
11195 }
@@ -114,15 +98,7 @@ public Node visit(DestructuringAssignmentStatement s, Map<String, VariableInfo>
11498 public Node visit (FunctionDefineStatement s , Map <String , VariableInfo > t ) {
11599 for (Argument argument : s .arguments ) {
116100 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 ));
126102 }
127103 return super .visit (s , t );
128104 }
@@ -132,6 +108,18 @@ public Node visit(MatchExpression s, Map<String, VariableInfo> t) {
132108 // no visit match expression
133109 return s ;
134110 }
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+ }
135123 }
136124
137125 private class VariablesPropagator extends OptimizationVisitor <Map <String , Value >> {
0 commit comments