1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-05-31 18:41:30 +00:00

Correctly optimize variables around macros

This commit is contained in:
Karol Stasiak 2021-02-18 00:38:51 +01:00
parent d20cc677bb
commit 02031da61a

View File

@ -181,7 +181,7 @@ abstract class AbstractStatementPreprocessor(protected val ctx: CompilationConte
cv = search(arg, cv)
cv = search(ve, cv)
Assignment(ve, optimizeExpr(arg, cv)).pos(pos) -> cv
case ExpressionStatement(expr@FunctionCallExpression(fname, List(VariableExpression(v), arg)))
case ExpressionStatement(expr@FunctionCallExpression(fname, _))
if ctx.env.maybeGet[Thing](fname).exists(i => i.isInstanceOf[MacroFunction]) =>
ExpressionStatement(optimizeExpr(expr, Map())).pos(pos) -> Map()
case ExpressionStatement(expr@FunctionCallExpression("+=", List(VariableExpression(v), arg)))