aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/Operations.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-15 14:23:47 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-15 14:23:47 +0100
commitbc06840e00425db342bc5a021c0900d9e63b71f0 (patch)
tree0aa45a4ea475804a36a5ee33f9a726656f45bc1f /src/main/java/org/zwobble/couscous/ast/Operations.java
parent3be68289f34a37ac7f9e1e95fa0d95dfc1bb3836 (diff)
Split switch handling off to desugar step
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/Operations.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/Operations.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/Operations.java b/src/main/java/org/zwobble/couscous/ast/Operations.java
index 0ef9b88..308d070 100644
--- a/src/main/java/org/zwobble/couscous/ast/Operations.java
+++ b/src/main/java/org/zwobble/couscous/ast/Operations.java
@@ -4,7 +4,9 @@ import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.Types;
import org.zwobble.couscous.values.InternalCouscousValue;
+import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
+import static org.zwobble.couscous.ast.TypeCoercionNode.coerce;
import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion;
import static org.zwobble.couscous.util.ExtraLists.list;
@@ -94,4 +96,8 @@ public class Operations {
public static ExpressionNode instanceOf(ExpressionNode value, ScalarType type) {
return new InstanceOfNode(value, type);
}
+
+ public static ExpressionNode methodEquals(ExpressionNode left, ExpressionNode right) {
+ return methodCall(left, "equals", list(coerce(right, Types.OBJECT)), Types.BOOLEAN);
+ }
}