mirror of
https://github.com/apple/pkl.git
synced 2026-07-05 20:51:51 +02:00
Fix double unary minus (#697)
Fix an issue where doubly unary minus (e.g. `--1`) on int/float literals are incorrectly parsed as single unary minus.
This commit is contained in:
@@ -1869,12 +1869,12 @@ public final class AstBuilder extends AbstractAstBuilder<Object> {
|
||||
|
||||
@Override
|
||||
public ExpressionNode visitUnaryMinusExpr(UnaryMinusExprContext ctx) {
|
||||
var childExpr = visitExpr(ctx.expr());
|
||||
if (childExpr instanceof IntLiteralNode || childExpr instanceof FloatLiteralNode) {
|
||||
// negation already handled in child expr (see corresponding code)
|
||||
var childCtx = ctx.expr();
|
||||
var childExpr = visitExpr(childCtx);
|
||||
if (childCtx instanceof IntLiteralContext || childCtx instanceof FloatLiteralContext) {
|
||||
// negation already handled (see visitIntLiteral/visitFloatLiteral)
|
||||
return childExpr;
|
||||
}
|
||||
|
||||
return UnaryMinusNodeGen.create(createSourceSection(ctx), childExpr);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user