diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile new file mode 100644 index 0000000..3347020 --- /dev/null +++ b/examples/expression/shiftExpr.tile @@ -0,0 +1,6 @@ +func main(argc: int): void { + x: int = 4; + y: int = 4 << 2; + z: int = 4 >> 1 + 2; + t: int = 4 << 2 * 2; +} diff --git a/src/tile/AntlrToExpression.java b/src/tile/AntlrToExpression.java index c0a456e..8bf233b 100644 --- a/src/tile/AntlrToExpression.java +++ b/src/tile/AntlrToExpression.java @@ -417,7 +417,7 @@ public Expression visitShiftExpression(ShiftExpressionContext ctx) { Expression left = visit(exprs.get(0)); Expression right = visit(exprs.get(1)); String operator = ctx.getChild(1).getText(); - return new ShiftExpression(left, operator, right, new TypeInfoBinopInt()); + return new ShiftExpression(left, operator, right, TypeResolver.resolveBinopShiftType(left.getType(), right.getType())); } else if (exprs.size() == 1) { return visit(exprs.get(0)); }