From 003b55c6758f4202bff786b8324d1ded6d141a88 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 2 Oct 2015 19:22:31 +0100 Subject: Use type references instead of deferred types --- src/main/java/org/zwobble/couscous/values/StringValue.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/values/StringValue.java') diff --git a/src/main/java/org/zwobble/couscous/values/StringValue.java b/src/main/java/org/zwobble/couscous/values/StringValue.java index e8a7c0e..0e24ac6 100644 --- a/src/main/java/org/zwobble/couscous/values/StringValue.java +++ b/src/main/java/org/zwobble/couscous/values/StringValue.java @@ -1,17 +1,20 @@ package org.zwobble.couscous.values; import static java.util.Arrays.asList; +import static org.zwobble.couscous.values.TypeReference.typeRef; import lombok.Value; import lombok.val; @Value public class StringValue implements InterpreterValue { - public static final ConcreteType TYPE = ConcreteType.builder("String") - .method("length", () -> asList(), + public static final TypeReference REF = typeRef("java.lang.String"); + + public static final ConcreteType TYPE = ConcreteType.builder(REF) + .method("length", asList(), (receiver, arguments) -> new IntegerValue(receiver.value.length())) - .method("substring", () -> asList(IntegerValue.TYPE, IntegerValue.TYPE), + .method("substring", asList(IntegerValue.REF, IntegerValue.REF), (receiver, arguments) -> { val startIndex = (IntegerValue)arguments.get(0); val endIndex = (IntegerValue)arguments.get(1); -- cgit v1.2.3