aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-18 20:19:57 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-18 20:19:57 +0000
commit8cb8183985558dbf722ed3c787431a58a27772e1 (patch)
tree724ab14c0e8d708689459214d0add4d4e62d9c4e /src/main/java/org/zwobble/couscous/ast
parent39fcb0412893e9ea0b941abdd2961920f5008703 (diff)
Move types package out of ast package
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/AnnotationNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/AssignmentNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/CastNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ConstructorCallNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ExpressionNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/FieldAccessNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/FieldDeclarationNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/InterfaceNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/LiteralNode.java6
-rw-r--r--src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodCallNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodSignature.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/OperationNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/Receiver.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/StaticReceiver.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TypeCoercionNode.java3
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TypeNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/sugar/AnonymousClass.java2
-rw-r--r--src/main/java/org/zwobble/couscous/ast/types/BoundTypeParameter.java55
-rw-r--r--src/main/java/org/zwobble/couscous/ast/types/ParameterizedType.java57
-rw-r--r--src/main/java/org/zwobble/couscous/ast/types/ScalarType.java73
-rw-r--r--src/main/java/org/zwobble/couscous/ast/types/Type.java12
-rw-r--r--src/main/java/org/zwobble/couscous/ast/types/TypeParameter.java55
-rw-r--r--src/main/java/org/zwobble/couscous/ast/types/Types.java29
-rw-r--r--src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java4
33 files changed, 36 insertions, 318 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/AnnotationNode.java b/src/main/java/org/zwobble/couscous/ast/AnnotationNode.java
index b70ed12..00d9797 100644
--- a/src/main/java/org/zwobble/couscous/ast/AnnotationNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/AnnotationNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java b/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java
index 64fb973..6c49d39 100644
--- a/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/AssignmentNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/CastNode.java b/src/main/java/org/zwobble/couscous/ast/CastNode.java
index 75201e7..026a1c0 100644
--- a/src/main/java/org/zwobble/couscous/ast/CastNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/CastNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNode.java b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
index d50051c..d75e6b7 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
index 9dc5098..1fe8fcb 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNodeBuilder.java
@@ -3,8 +3,8 @@ package org.zwobble.couscous.ast;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.zwobble.couscous.ast.identifiers.Identifier;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.values.UnitValue;
import java.util.List;
diff --git a/src/main/java/org/zwobble/couscous/ast/ConstructorCallNode.java b/src/main/java/org/zwobble/couscous/ast/ConstructorCallNode.java
index 5a597d1..fdd9f86 100644
--- a/src/main/java/org/zwobble/couscous/ast/ConstructorCallNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ConstructorCallNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java b/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
index 2452183..817078f 100644
--- a/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ExpressionNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/FieldAccessNode.java b/src/main/java/org/zwobble/couscous/ast/FieldAccessNode.java
index e417638..23e3aaa 100644
--- a/src/main/java/org/zwobble/couscous/ast/FieldAccessNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/FieldAccessNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.AssignableExpressionNodeVisitor;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/FieldDeclarationNode.java b/src/main/java/org/zwobble/couscous/ast/FieldDeclarationNode.java
index a207b82..515045f 100644
--- a/src/main/java/org/zwobble/couscous/ast/FieldDeclarationNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/FieldDeclarationNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java b/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java
index 7df3ead..ae80b0c 100644
--- a/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/FormalArgumentNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/InterfaceNode.java b/src/main/java/org/zwobble/couscous/ast/InterfaceNode.java
index 97faae4..86972ad 100644
--- a/src/main/java/org/zwobble/couscous/ast/InterfaceNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/InterfaceNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/LiteralNode.java b/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
index df2b87c..f0e9af5 100644
--- a/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
@@ -1,8 +1,8 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ParameterizedType;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ParameterizedType;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
import org.zwobble.couscous.values.*;
diff --git a/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java b/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java
index 5b571d0..286e8bc 100644
--- a/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/LocalVariableDeclarationNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.identifiers.Identifier;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
import org.zwobble.couscous.ast.visitors.StatementNodeMapper;
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java
index 0078002..5e55153 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodNode.java b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
index 8589eb1..b8f2601 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
import com.google.common.collect.ImmutableList;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
import org.zwobble.couscous.values.UnitValue;
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodSignature.java b/src/main/java/org/zwobble/couscous/ast/MethodSignature.java
index 4cb04fb..060d2bc 100644
--- a/src/main/java/org/zwobble/couscous/ast/MethodSignature.java
+++ b/src/main/java/org/zwobble/couscous/ast/MethodSignature.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import java.util.List;
diff --git a/src/main/java/org/zwobble/couscous/ast/OperationNode.java b/src/main/java/org/zwobble/couscous/ast/OperationNode.java
index d6453e3..1e49c97 100644
--- a/src/main/java/org/zwobble/couscous/ast/OperationNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/OperationNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/Receiver.java b/src/main/java/org/zwobble/couscous/ast/Receiver.java
index 90395d2..ca547a2 100644
--- a/src/main/java/org/zwobble/couscous/ast/Receiver.java
+++ b/src/main/java/org/zwobble/couscous/ast/Receiver.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
+import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
public interface Receiver extends Node {
diff --git a/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java b/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java
index 3c6e32c..4a90ee7 100644
--- a/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java
+++ b/src/main/java/org/zwobble/couscous/ast/StaticReceiver.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
+import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.ast.visitors.NodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java b/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java
index 2d46473..9d17848 100644
--- a/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/TernaryConditionalNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java b/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java
index cdf995b..e13596e 100644
--- a/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ThisReferenceNode.java
@@ -1,6 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/TypeCoercionNode.java b/src/main/java/org/zwobble/couscous/ast/TypeCoercionNode.java
index c8c2a33..266b927 100644
--- a/src/main/java/org/zwobble/couscous/ast/TypeCoercionNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/TypeCoercionNode.java
@@ -1,7 +1,6 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/TypeNode.java b/src/main/java/org/zwobble/couscous/ast/TypeNode.java
index af4ab81..3e18de7 100644
--- a/src/main/java/org/zwobble/couscous/ast/TypeNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/TypeNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
import java.util.List;
diff --git a/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java b/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java
index 55d4efb..5513a12 100644
--- a/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java
+++ b/src/main/java/org/zwobble/couscous/ast/VariableDeclaration.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.identifiers.Identifier;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
public class VariableDeclaration {
public static VariableDeclaration var(Identifier id, String name, Type type) {
diff --git a/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java b/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java
index 2b81fbb..3f7da7f 100644
--- a/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/VariableReferenceNode.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.ast;
import org.zwobble.couscous.ast.identifiers.Identifier;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import org.zwobble.couscous.ast.visitors.AssignableExpressionNodeVisitor;
import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
diff --git a/src/main/java/org/zwobble/couscous/ast/sugar/AnonymousClass.java b/src/main/java/org/zwobble/couscous/ast/sugar/AnonymousClass.java
index f8a8c48..edf71d4 100644
--- a/src/main/java/org/zwobble/couscous/ast/sugar/AnonymousClass.java
+++ b/src/main/java/org/zwobble/couscous/ast/sugar/AnonymousClass.java
@@ -2,7 +2,7 @@ package org.zwobble.couscous.ast.sugar;
import org.zwobble.couscous.ast.FieldDeclarationNode;
import org.zwobble.couscous.ast.MethodNode;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.Type;
import java.util.List;
import java.util.Set;
diff --git a/src/main/java/org/zwobble/couscous/ast/types/BoundTypeParameter.java b/src/main/java/org/zwobble/couscous/ast/types/BoundTypeParameter.java
deleted file mode 100644
index abb8906..0000000
--- a/src/main/java/org/zwobble/couscous/ast/types/BoundTypeParameter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.zwobble.couscous.ast.types;
-
-public class BoundTypeParameter implements Type {
- public static BoundTypeParameter boundTypeParameter(TypeParameter parameter, Type value) {
- return new BoundTypeParameter(parameter, value);
- }
-
- private final TypeParameter parameter;
- private final Type value;
-
- public BoundTypeParameter(TypeParameter parameter, Type value) {
- this.parameter = parameter;
- this.value = value;
- }
-
- public TypeParameter getParameter() {
- return parameter;
- }
-
- public Type getValue() {
- return value;
- }
-
- @Override
- public <T> T accept(Visitor<T> visitor) {
- return visitor.visit(this);
- }
-
- @Override
- public String toString() {
- return "BoundTypeParameter(" +
- "parameter=" + parameter +
- ", value=" + value +
- ')';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- BoundTypeParameter that = (BoundTypeParameter) o;
-
- if (!parameter.equals(that.parameter)) return false;
- return value.equals(that.value);
-
- }
-
- @Override
- public int hashCode() {
- int result = parameter.hashCode();
- result = 31 * result + value.hashCode();
- return result;
- }
-}
diff --git a/src/main/java/org/zwobble/couscous/ast/types/ParameterizedType.java b/src/main/java/org/zwobble/couscous/ast/types/ParameterizedType.java
deleted file mode 100644
index a23fdc0..0000000
--- a/src/main/java/org/zwobble/couscous/ast/types/ParameterizedType.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.zwobble.couscous.ast.types;
-
-import java.util.List;
-
-public class ParameterizedType implements Type {
- public static ParameterizedType parameterizedType(ScalarType rawType, List<Type> parameters) {
- return new ParameterizedType(rawType, parameters);
- }
-
- private final ScalarType rawType;
- private final List<Type> parameters;
-
- public ParameterizedType(ScalarType rawType, List<Type> parameters) {
- this.rawType = rawType;
- this.parameters = parameters;
- }
-
- public ScalarType getRawType() {
- return rawType;
- }
-
- public List<Type> getParameters() {
- return parameters;
- }
-
- @Override
- public <T> T accept(Visitor<T> visitor) {
- return visitor.visit(this);
- }
-
- @Override
- public String toString() {
- return "ParameterizedType(" +
- "rawType=" + rawType +
- ", parameters=" + parameters +
- ')';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- ParameterizedType that = (ParameterizedType) o;
-
- if (!rawType.equals(that.rawType)) return false;
- return parameters.equals(that.parameters);
-
- }
-
- @Override
- public int hashCode() {
- int result = rawType.hashCode();
- result = 31 * result + parameters.hashCode();
- return result;
- }
-}
diff --git a/src/main/java/org/zwobble/couscous/ast/types/ScalarType.java b/src/main/java/org/zwobble/couscous/ast/types/ScalarType.java
deleted file mode 100644
index 69b9f97..0000000
--- a/src/main/java/org/zwobble/couscous/ast/types/ScalarType.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.zwobble.couscous.ast.types;
-
-import com.google.common.base.Strings;
-
-import java.util.Optional;
-
-public class ScalarType implements Type {
- public static ScalarType of(String qualifiedName) {
- if (Strings.isNullOrEmpty(qualifiedName)) {
- throw new IllegalArgumentException("qualifiedName cannot be blank");
- }
- return new ScalarType(qualifiedName);
- }
-
- private final String qualifiedName;
-
- private ScalarType(String qualifiedName) {
- this.qualifiedName = qualifiedName;
- }
-
- public String getQualifiedName() {
- return qualifiedName;
- }
-
- public String getSimpleName() {
- return qualifiedName.substring(qualifiedName.lastIndexOf(".") + 1);
- }
-
- public Optional<String> getPackage() {
- int lastDot = qualifiedName.lastIndexOf(".");
- if (lastDot == -1) {
- return Optional.empty();
- } else {
- return Optional.of(qualifiedName.substring(0, lastDot));
- }
- }
-
- @Override
- public String toString() {
- return "ScalarType(qualifiedName=" + qualifiedName + ")";
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result
- + ((qualifiedName == null) ? 0 : qualifiedName.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- ScalarType other = (ScalarType) obj;
- if (qualifiedName == null) {
- if (other.qualifiedName != null)
- return false;
- } else if (!qualifiedName.equals(other.qualifiedName))
- return false;
- return true;
- }
-
- @Override
- public <T> T accept(Visitor<T> visitor) {
- return visitor.visit(this);
- }
-}
diff --git a/src/main/java/org/zwobble/couscous/ast/types/Type.java b/src/main/java/org/zwobble/couscous/ast/types/Type.java
deleted file mode 100644
index 2a64341..0000000
--- a/src/main/java/org/zwobble/couscous/ast/types/Type.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.zwobble.couscous.ast.types;
-
-public interface Type {
- <T> T accept(Visitor<T> visitor);
-
- interface Visitor<T> {
- T visit(ScalarType type);
- T visit(TypeParameter parameter);
- T visit(ParameterizedType type);
- T visit(BoundTypeParameter type);
- }
-}
diff --git a/src/main/java/org/zwobble/couscous/ast/types/TypeParameter.java b/src/main/java/org/zwobble/couscous/ast/types/TypeParameter.java
deleted file mode 100644
index 9cda882..0000000
--- a/src/main/java/org/zwobble/couscous/ast/types/TypeParameter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.zwobble.couscous.ast.types;
-
-public class TypeParameter implements Type {
- public static TypeParameter typeParameter(ScalarType declaringType, String name) {
- return new TypeParameter(declaringType, name);
- }
-
- private final ScalarType declaringType;
- private final String name;
-
- public TypeParameter(ScalarType declaringType, String name) {
- this.declaringType = declaringType;
- this.name = name;
- }
-
- public ScalarType getDeclaringType() {
- return declaringType;
- }
-
- public String getName() {
- return name;
- }
-
- @Override
- public <T> T accept(Visitor<T> visitor) {
- return visitor.visit(this);
- }
-
- @Override
- public String toString() {
- return "TypeParameter(" +
- "declaringType=" + declaringType +
- ", name=" + name +
- ')';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- TypeParameter that = (TypeParameter) o;
-
- if (!declaringType.equals(that.declaringType)) return false;
- return name.equals(that.name);
-
- }
-
- @Override
- public int hashCode() {
- int result = declaringType.hashCode();
- result = 31 * result + name.hashCode();
- return result;
- }
-}
diff --git a/src/main/java/org/zwobble/couscous/ast/types/Types.java b/src/main/java/org/zwobble/couscous/ast/types/Types.java
deleted file mode 100644
index 5fb079b..0000000
--- a/src/main/java/org/zwobble/couscous/ast/types/Types.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.zwobble.couscous.ast.types;
-
-import org.zwobble.couscous.values.ObjectValues;
-
-public class Types {
- public static ScalarType erasure(Type type) {
- return type.accept(new Type.Visitor<ScalarType>() {
- @Override
- public ScalarType visit(ScalarType type) {
- return type;
- }
-
- @Override
- public ScalarType visit(TypeParameter parameter) {
- return ObjectValues.OBJECT;
- }
-
- @Override
- public ScalarType visit(ParameterizedType type) {
- return type.getRawType();
- }
-
- @Override
- public ScalarType visit(BoundTypeParameter type) {
- return erasure(type.getParameter());
- }
- });
- }
-}
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
index 0998564..393bd7e 100644
--- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
+++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java
@@ -5,8 +5,8 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import org.zwobble.couscous.ast.*;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.types.ScalarType;
+import org.zwobble.couscous.types.Type;
import java.util.List;
import java.util.Map;