diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java index 114e4ef..86a3868 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; +import static org.zwobble.couscous.ast.CastNode.cast; import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall; @@ -102,6 +103,9 @@ public class JavaExpressionReader { case ASTNode.ASSIGNMENT: return readAssignment((Assignment)expression); + case ASTNode.CAST_EXPRESSION: + return readCastExpression((CastExpression)expression); + default: throw new RuntimeException("Unsupported expression: " + expression.getClass()); @@ -307,6 +311,10 @@ public class JavaExpressionReader { operator.isBoolean() ? BooleanValue.REF : left.getType()); } + private ExpressionNode readCastExpression(CastExpression expression) { + return cast(readExpressionWithoutBoxing(expression.getExpression()), typeOf(expression)); + } + private ExpressionNode readUnboxedExpression(Expression expression) { return readExpression( unboxedType(typeOf(expression)), |
