aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java14
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 {