aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java8
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)),