diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-02 19:22:31 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-02 19:22:31 +0100 |
| commit | 003b55c6758f4202bff786b8324d1ded6d141a88 (patch) | |
| tree | 564169cbaaa99cfcdd33c85c943fea8995797a22 /src/main/java/org/zwobble/couscous/values/StringValue.java | |
| parent | 90dae189f638148a7b72add782023088cf22e847 (diff) | |
Use type references instead of deferred types
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values/StringValue.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/values/StringValue.java | 9 |
1 files changed, 6 insertions, 3 deletions
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.<StringValue>builder("String") - .method("length", () -> asList(), + public static final TypeReference REF = typeRef("java.lang.String"); + + public static final ConcreteType<?> TYPE = ConcreteType.<StringValue>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); |
