diff --git a/Compilation/StringAccumulatorPromotionAnalyzer.cs b/Compilation/StringAccumulatorPromotionAnalyzer.cs index 958d6521..234004a4 100644 --- a/Compilation/StringAccumulatorPromotionAnalyzer.cs +++ b/Compilation/StringAccumulatorPromotionAnalyzer.cs @@ -108,7 +108,7 @@ private void HandleDeclaration(Token name, Expr? initializer) Visit(initializer); } - protected override void VisitExpressionStmt(Stmt.Expression stmt) + protected override void VisitExpression(Stmt.Expression stmt) { // Permitted append in statement position (result discarded): `s = s + E` / `s += E` // with E statically string. Consume by visiting ONLY E — not the target, not the inner @@ -124,7 +124,7 @@ protected override void VisitExpressionStmt(Stmt.Expression stmt) Visit(ca.Value); return; } - base.VisitExpressionStmt(stmt); + base.VisitExpression(stmt); } protected override void VisitGet(Expr.Get expr) diff --git a/Parsing/Visitors/AstVisitorBase.cs b/Parsing/Visitors/AstVisitorBase.cs index 6d2168d7..b42bdbf5 100644 --- a/Parsing/Visitors/AstVisitorBase.cs +++ b/Parsing/Visitors/AstVisitorBase.cs @@ -91,7 +91,7 @@ public virtual void Visit(Stmt stmt) switch (stmt) { - case Stmt.Expression s: VisitExpressionStmt(s); break; + case Stmt.Expression s: VisitExpression(s); break; case Stmt.Var s: VisitVar(s); break; case Stmt.Const s: VisitConst(s); break; case Stmt.Function s: VisitFunction(s); break; @@ -431,7 +431,7 @@ protected virtual void VisitClassExpr(Expr.ClassExpr expr) #region Statement Visitors - Default implementations traverse children - protected virtual void VisitExpressionStmt(Stmt.Expression stmt) + protected virtual void VisitExpression(Stmt.Expression stmt) { Visit(stmt.Expr); }