diff --git a/parser/macro.go b/parser/macro.go
index 1f4c847e..c1936b69 100644
--- a/parser/macro.go
+++ b/parser/macro.go
@@ -382,13 +382,11 @@ func makeQuantifier(kind quantifierKind, eh ExprHelper, target ast.Expr, args []
step = eh.NewCall(operators.LogicalOr, eh.NewAccuIdent(), args[1])
result = eh.NewAccuIdent()
case quantifierExistsOne:
- zeroExpr := eh.NewLiteral(types.Int(0))
- oneExpr := eh.NewLiteral(types.Int(1))
- init = zeroExpr
+ init = eh.NewLiteral(types.Int(0))
condition = eh.NewLiteral(types.True)
step = eh.NewCall(operators.Conditional, args[1],
- eh.NewCall(operators.Add, eh.NewAccuIdent(), oneExpr), eh.NewAccuIdent())
- result = eh.NewCall(operators.Equals, eh.NewAccuIdent(), oneExpr)
+ eh.NewCall(operators.Add, eh.NewAccuIdent(), eh.NewLiteral(types.Int(1))), eh.NewAccuIdent())
+ result = eh.NewCall(operators.Equals, eh.NewAccuIdent(), eh.NewLiteral(types.Int(1)))
default:
return nil, eh.NewError(args[0].ID(), fmt.Sprintf("unrecognized quantifier '%v'", kind))
}
diff --git a/parser/parser_test.go b/parser/parser_test.go
index 84ff07e6..72bb587f 100644
--- a/parser/parser_test.go
+++ b/parser/parser_test.go
@@ -506,25 +506,25 @@ var testCases = []testInfo{
// Init
0^#5:*expr.Constant_Int64Value#,
// LoopCondition
- true^#7:*expr.Constant_BoolValue#,
+ true^#6:*expr.Constant_BoolValue#,
// LoopStep
_?_:_(
f^#4:*expr.Expr_IdentExpr#,
_+_(
- __result__^#8:*expr.Expr_IdentExpr#,
- 1^#6:*expr.Constant_Int64Value#
+ __result__^#7:*expr.Expr_IdentExpr#,
+ 1^#8:*expr.Constant_Int64Value#
)^#9:*expr.Expr_CallExpr#,
__result__^#10:*expr.Expr_IdentExpr#
)^#11:*expr.Expr_CallExpr#,
// Result
_==_(
__result__^#12:*expr.Expr_IdentExpr#,
- 1^#6:*expr.Constant_Int64Value#
- )^#13:*expr.Expr_CallExpr#)^#14:*expr.Expr_ComprehensionExpr#`,
+ 1^#13:*expr.Constant_Int64Value#
+ )^#14:*expr.Expr_CallExpr#)^#15:*expr.Expr_ComprehensionExpr#`,
M: `m^#1:*expr.Expr_IdentExpr#.exists_one(
v^#3:*expr.Expr_IdentExpr#,
f^#4:*expr.Expr_IdentExpr#
- )^#14:exists_one#`,
+ )^#15:exists_one#`,
},
{
I: `m.map(v, f)`,
@@ -1112,7 +1112,7 @@ var testCases = []testInfo{
| ..............^
ERROR: :1:15: argument is not an identifier
| [1, 2, 3].map(var, var * var)
- | ..............^
+ | ..............^
ERROR: :1:20: reserved identifier: var
| [1, 2, 3].map(var, var * var)
| ...................^