@@ -11,6 +11,8 @@ type Visitor = {
11
11
visitLocalDeclaration : (T .AstStatLocal ) -> boolean ,
12
12
visitFor : (T .AstStatFor ) -> boolean ,
13
13
visitForIn : (T .AstStatForIn ) -> boolean ,
14
+ visitAssign : (T .AstStatAssign ) -> boolean ,
15
+ visitCompoundAssign : (T .AstStatCompoundAssign ) -> boolean ,
14
16
15
17
visitLocalReference : (T .AstExprLocal ) -> boolean ,
16
18
visitGlobal : (T .AstExprGlobal ) -> boolean ,
@@ -46,6 +48,8 @@ local defaultVisitor: Visitor = {
46
48
visitLocalDeclaration = alwaysVisit :: any ,
47
49
visitFor = alwaysVisit :: any ,
48
50
visitForIn = alwaysVisit :: any ,
51
+ visitAssign = alwaysVisit :: any ,
52
+ visitCompoundAssign = alwaysVisit :: any ,
49
53
50
54
visitLocalReference = alwaysVisit :: any ,
51
55
visitGlobal = alwaysVisit :: any ,
@@ -185,6 +189,22 @@ local function visitForIn(node: T.AstStatForIn, visitor: Visitor)
185
189
end
186
190
end
187
191
192
+ local function visitAssign (node : T .AstStatAssign , visitor : Visitor )
193
+ if visitor .visitAssign (node ) then
194
+ visitPunctuated (node .variables , visitor , visitExpression )
195
+ visitToken (node .equals , visitor )
196
+ visitPunctuated (node .values , visitor , visitExpression )
197
+ end
198
+ end
199
+
200
+ local function visitCompoundAssign (node : T .AstStatCompoundAssign , visitor : Visitor )
201
+ if visitor .visitCompoundAssign (node ) then
202
+ visitExpression (node .variable , visitor )
203
+ visitToken (node .operand , visitor )
204
+ visitExpression (node .value , visitor )
205
+ end
206
+ end
207
+
188
208
local function visitString (node : T .AstExprConstantString , visitor : Visitor )
189
209
if visitor .visitString (node ) then
190
210
visitor .visitToken (node )
@@ -388,6 +408,10 @@ function visitStatement(statement: T.AstStat, visitor: Visitor)
388
408
visitFor (statement , visitor )
389
409
elseif statement .tag == "forin" then
390
410
visitForIn (statement , visitor )
411
+ elseif statement .tag == "assign" then
412
+ visitAssign (statement , visitor )
413
+ elseif statement .tag == "compoundassign" then
414
+ visitCompoundAssign (statement , visitor )
391
415
else
392
416
exhaustiveMatch (statement .tag )
393
417
end
0 commit comments