From 75b69c7f4e7ed84f82c549e36a3928a48720cc26 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 4 Jan 2016 23:28:22 +0000 Subject: Move type coercion decisions into the backends --- .../zwobble/couscous/ast/StaticMethodCallNode.java | 25 +++++----------------- 1 file changed, 5 insertions(+), 20 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java') diff --git a/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java index ccb9854..7c3b90b 100644 --- a/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java +++ b/src/main/java/org/zwobble/couscous/ast/StaticMethodCallNode.java @@ -10,6 +10,7 @@ import org.zwobble.couscous.values.InternalCouscousValue; import org.zwobble.couscous.values.ObjectValues; import static java.util.Arrays.asList; +import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion; import static org.zwobble.couscous.util.ExtraLists.eagerMap; public class StaticMethodCallNode implements ExpressionNode { @@ -18,35 +19,19 @@ public class StaticMethodCallNode implements ExpressionNode { } public static ExpressionNode boxInt(ExpressionNode value) { - return staticMethodCall( - InternalCouscousValue.REF, - "boxInt", - asList(value), - ObjectValues.BOXED_INT); + return typeCoercion(value, ObjectValues.BOXED_INT); } public static ExpressionNode unboxInt(ExpressionNode value) { - return staticMethodCall( - InternalCouscousValue.REF, - "unboxInt", - asList(value), - IntegerValue.REF); + return typeCoercion(value, IntegerValue.REF); } public static ExpressionNode boxBoolean(ExpressionNode value) { - return staticMethodCall( - InternalCouscousValue.REF, - "boxBoolean", - asList(value), - ObjectValues.BOXED_BOOLEAN); + return typeCoercion(value, ObjectValues.BOXED_BOOLEAN); } public static ExpressionNode unboxBoolean(ExpressionNode value) { - return staticMethodCall( - InternalCouscousValue.REF, - "unboxBoolean", - asList(value), - BooleanValue.REF); + return typeCoercion(value, BooleanValue.REF); } public static StaticMethodCallNode staticMethodCall( -- cgit v1.2.3