diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-31 18:47:20 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-31 18:47:20 +0000 |
| commit | 493d00f3ccf6af2d4ccb4421a82c143d96945178 (patch) | |
| tree | 0dc8001461cc492eeb8e25fea7e2dc2c1d08f2ca /src/main/java/org/zwobble/couscous/frontends | |
| parent | 971fb3c743df26c408d752f1bc4137e645f455a2 (diff) | |
Support reading of boxed booleans
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java index a74cb35..99d0268 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -166,13 +166,25 @@ public class JavaReader { private static ExpressionNode readExpression(TypeName targetType, Expression expression) { ExpressionNode couscousExpression = readExpressionWithoutBoxing(expression); - if (couscousExpression.getType().equals(IntegerValue.REF) && !targetType.equals(IntegerValue.REF)) { + if (isIntegerBox(targetType, couscousExpression)) { return StaticMethodCallNode.boxInt(couscousExpression); + } else if (isBooleanBox(targetType, couscousExpression)) { + return StaticMethodCallNode.boxBoolean(couscousExpression); } else { return couscousExpression; } } + private static boolean isIntegerBox(TypeName targetType, ExpressionNode expression) { + return expression.getType().equals(IntegerValue.REF) && + !targetType.equals(IntegerValue.REF); + } + + private static boolean isBooleanBox(TypeName targetType, ExpressionNode expression) { + return expression.getType().equals(BooleanValue.REF) && + !targetType.equals(BooleanValue.REF); + } + private static ExpressionNode readExpressionWithoutBoxing(Expression expression) { switch (expression.getNodeType()) { case ASTNode.BOOLEAN_LITERAL: |
