@@ -36,34 +36,33 @@ public Node visit(AssignmentExpression s, Map<String, VariableInfo> t) {
36
36
}
37
37
38
38
final String variableName = ((VariableExpression ) s .target ).name ;
39
- final VariableInfo var = variableInfo (t , variableName );
39
+ final VariableInfo var = grabVariableInfo (t , variableName );
40
40
41
41
if (s .operation == null && isValue (s .expression )) {
42
42
var .value = ((ValueExpression ) s .expression ).value ;
43
43
}
44
- t .put (variableName , var );
45
44
return super .visit (s , t );
46
45
}
47
46
48
47
@ Override
49
48
public Node visit (DestructuringAssignmentStatement s , Map <String , VariableInfo > t ) {
50
49
for (String variableName : s .variables ) {
51
50
if (variableName == null ) continue ;
52
- t . put ( variableName , variableInfo ( t , variableName ) );
51
+ grabVariableInfo ( t , variableName );
53
52
}
54
53
return super .visit (s , t );
55
54
}
56
55
57
56
@ Override
58
57
public Node visit (ForeachArrayStatement s , Map <String , VariableInfo > t ) {
59
- t . put ( s . variable , variableInfo ( t , s .variable ) );
58
+ grabVariableInfo ( t , s .variable );
60
59
return super .visit (s , t );
61
60
}
62
61
63
62
@ Override
64
63
public Node visit (ForeachMapStatement s , Map <String , VariableInfo > t ) {
65
- t . put ( s . key , variableInfo ( t , s .key ) );
66
- t . put ( s . value , variableInfo ( t , s .value ) );
64
+ grabVariableInfo ( t , s .key );
65
+ grabVariableInfo ( t , s .value );
67
66
return super .visit (s , t );
68
67
}
69
68
@@ -72,7 +71,7 @@ public Node visit(MatchExpression s, Map<String, VariableInfo> t) {
72
71
for (MatchExpression .Pattern pattern : s .patterns ) {
73
72
if (pattern instanceof MatchExpression .VariablePattern varPattern ) {
74
73
final String variableName = varPattern .variable ;
75
- t . put ( variableName , variableInfo ( t , variableName ) );
74
+ grabVariableInfo ( t , variableName );
76
75
}
77
76
}
78
77
return super .visit (s , t );
@@ -82,13 +81,12 @@ public Node visit(MatchExpression s, Map<String, VariableInfo> t) {
82
81
public Node visit (UnaryExpression s , Map <String , VariableInfo > t ) {
83
82
if (s .expr1 instanceof Accessible ) {
84
83
if (s .expr1 instanceof VariableExpression varExpr ) {
85
- final String variableName = varExpr .name ;
86
- t .put (variableName , variableInfo (t , variableName ));
84
+ grabVariableInfo (t , varExpr .name );
87
85
}
88
86
if (s .expr1 instanceof ContainerAccessExpression conExpr ) {
89
87
if (conExpr .rootIsVariable ()) {
90
88
final String variableName = ((VariableExpression ) conExpr .root ).name ;
91
- t . put ( variableName , variableInfo ( t , variableName ) );
89
+ grabVariableInfo ( t , variableName );
92
90
}
93
91
}
94
92
}
@@ -99,9 +97,8 @@ public Node visit(UnaryExpression s, Map<String, VariableInfo> t) {
99
97
public Node visit (UseStatement s , Map <String , VariableInfo > t ) {
100
98
if (grabModuleConstants ) {
101
99
for (Map .Entry <String , Value > entry : s .loadConstants ().entrySet ()) {
102
- final VariableInfo var = variableInfo (t , entry .getKey ());
100
+ final VariableInfo var = grabVariableInfo (t , entry .getKey ());
103
101
var .value = entry .getValue ();
104
- t .put (entry .getKey (), var );
105
102
}
106
103
}
107
104
return super .visit (s , t );
@@ -111,27 +108,27 @@ public Node visit(UseStatement s, Map<String, VariableInfo> t) {
111
108
protected boolean visit (Arguments in , Arguments out , Map <String , VariableInfo > t ) {
112
109
for (Argument argument : in ) {
113
110
final String variableName = argument .name ();
114
- final VariableInfo var = variableInfo (t , variableName );
111
+ grabVariableInfo (t , variableName );
115
112
/* No need to add value - it is optional arguments
116
113
final Expression expr = argument.getValueExpr();
117
114
if (expr != null && isValue(expr)) {
118
115
var.value = ((ValueExpression) expr).value;
119
116
}*/
120
- t .put (variableName , var );
121
117
}
122
118
return super .visit (in , out , t );
123
119
}
124
120
125
121
126
122
127
- private VariableInfo variableInfo (Map <String , VariableInfo > t , final String variableName ) {
123
+ private VariableInfo grabVariableInfo (Map <String , VariableInfo > t , final String variableName ) {
128
124
final VariableInfo var ;
129
125
if (t .containsKey (variableName )) {
130
126
var = t .get (variableName );
131
127
var .modifications ++;
132
128
} else {
133
129
var = new VariableInfo ();
134
130
var .modifications = 1 ;
131
+ t .put (variableName , var );
135
132
}
136
133
return var ;
137
134
}
0 commit comments