diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java b/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java index eca6ba9..ebc31ae 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java +++ b/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java @@ -1,25 +1,27 @@ package org.zwobble.couscous.interpreter; import com.google.common.collect.ImmutableMap; -import org.zwobble.couscous.ast.TypeName; +import org.zwobble.couscous.ast.types.ScalarType; import org.zwobble.couscous.interpreter.types.InterpreterType; import java.util.Map; +import static org.zwobble.couscous.ast.types.Types.erasure; + public class MapBackedProject implements Project { public static Builder builder() { return new Builder(); } public static class Builder { - private final ImmutableMap.Builder<TypeName, InterpreterType> classes; + private final ImmutableMap.Builder<ScalarType, InterpreterType> classes; private Builder() { classes = ImmutableMap.builder(); } public Builder addClass(InterpreterType clazz) { - classes.put(clazz.getName(), clazz); + classes.put(erasure(clazz.getType()), clazz); return this; } @@ -35,14 +37,14 @@ public class MapBackedProject implements Project { } } - private Map<TypeName, InterpreterType> classes; + private Map<ScalarType, InterpreterType> classes; - public MapBackedProject(Map<TypeName, InterpreterType> classes) { + public MapBackedProject(Map<ScalarType, InterpreterType> classes) { this.classes = classes; } @Override - public InterpreterType findClass(TypeName name) { + public InterpreterType findClass(ScalarType name) { if (classes.containsKey(name)) { return classes.get(name); } else { |
