diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-18 20:19:57 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-18 20:19:57 +0000 |
| commit | 8cb8183985558dbf722ed3c787431a58a27772e1 (patch) | |
| tree | 724ab14c0e8d708689459214d0add4d4e62d9c4e /src/main/java/org/zwobble/couscous/ast | |
| parent | 39fcb0412893e9ea0b941abdd2961920f5008703 (diff) | |
Move types package out of ast package
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast')
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; |
