From 8cb8183985558dbf722ed3c787431a58a27772e1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 18 Mar 2016 20:19:57 +0000 Subject: Move types package out of ast package --- .../org/zwobble/couscous/ast/AnnotationNode.java | 2 +- .../org/zwobble/couscous/ast/AssignmentNode.java | 2 +- .../java/org/zwobble/couscous/ast/CastNode.java | 2 +- .../java/org/zwobble/couscous/ast/ClassNode.java | 4 +- .../org/zwobble/couscous/ast/ClassNodeBuilder.java | 4 +- .../zwobble/couscous/ast/ConstructorCallNode.java | 2 +- .../org/zwobble/couscous/ast/ExpressionNode.java | 2 +- .../org/zwobble/couscous/ast/FieldAccessNode.java | 4 +- .../zwobble/couscous/ast/FieldDeclarationNode.java | 2 +- .../zwobble/couscous/ast/FormalArgumentNode.java | 2 +- .../org/zwobble/couscous/ast/InterfaceNode.java | 4 +- .../java/org/zwobble/couscous/ast/LiteralNode.java | 6 +- .../couscous/ast/LocalVariableDeclarationNode.java | 2 +- .../org/zwobble/couscous/ast/MethodCallNode.java | 4 +- .../java/org/zwobble/couscous/ast/MethodNode.java | 2 +- .../org/zwobble/couscous/ast/MethodSignature.java | 2 +- .../org/zwobble/couscous/ast/OperationNode.java | 2 +- .../java/org/zwobble/couscous/ast/Receiver.java | 2 +- .../org/zwobble/couscous/ast/StaticReceiver.java | 2 +- .../couscous/ast/TernaryConditionalNode.java | 2 +- .../zwobble/couscous/ast/ThisReferenceNode.java | 2 +- .../org/zwobble/couscous/ast/TypeCoercionNode.java | 3 +- .../java/org/zwobble/couscous/ast/TypeNode.java | 4 +- .../zwobble/couscous/ast/VariableDeclaration.java | 2 +- .../couscous/ast/VariableReferenceNode.java | 2 +- .../zwobble/couscous/ast/sugar/AnonymousClass.java | 2 +- .../couscous/ast/types/BoundTypeParameter.java | 55 ---------------- .../couscous/ast/types/ParameterizedType.java | 57 ----------------- .../org/zwobble/couscous/ast/types/ScalarType.java | 73 ---------------------- .../java/org/zwobble/couscous/ast/types/Type.java | 12 ---- .../zwobble/couscous/ast/types/TypeParameter.java | 55 ---------------- .../java/org/zwobble/couscous/ast/types/Types.java | 29 --------- .../couscous/ast/visitors/NodeTransformer.java | 4 +- .../java/org/zwobble/couscous/backends/Names.java | 2 +- .../backends/csharp/CsharpCodeGenerator.java | 4 +- .../backends/csharp/CsharpPrimitiveMethods.java | 2 +- .../couscous/backends/csharp/CsharpSerializer.java | 2 +- .../backends/python/PythonCodeGenerator.java | 6 +- .../backends/python/PythonPrimitiveMethods.java | 2 +- .../couscous/frontends/java/GeneratedClosure.java | 2 +- .../java/JavaExpressionMethodReferenceReader.java | 4 +- .../frontends/java/JavaExpressionReader.java | 4 +- .../frontends/java/JavaLambdaExpressionReader.java | 3 +- .../couscous/frontends/java/JavaMethods.java | 6 +- .../couscous/frontends/java/JavaReader.java | 8 +-- .../frontends/java/JavaStatementReader.java | 4 +- .../zwobble/couscous/frontends/java/JavaTypes.java | 10 +-- .../org/zwobble/couscous/frontends/java/Scope.java | 4 +- .../zwobble/couscous/interpreter/Environment.java | 4 +- .../zwobble/couscous/interpreter/Evaluator.java | 4 +- .../zwobble/couscous/interpreter/Interpreter.java | 4 +- .../couscous/interpreter/InterpreterTypes.java | 2 +- .../couscous/interpreter/MapBackedProject.java | 4 +- .../org/zwobble/couscous/interpreter/Project.java | 2 +- .../couscous/interpreter/errors/InvalidCast.java | 2 +- .../interpreter/errors/UnexpectedValueType.java | 2 +- .../interpreter/types/InterpreterType.java | 2 +- .../types/IntrinsicInterpreterType.java | 4 +- .../types/UserDefinedInterpreterType.java | 4 +- .../couscous/interpreter/values/Callable.java | 3 +- .../interpreter/values/InterpreterValues.java | 2 +- .../couscous/interpreter/values/MethodValue.java | 2 +- .../interpreter/values/StaticMethodValue.java | 2 +- .../interpreter/values/TypeInterpreterValue.java | 2 +- .../zwobble/couscous/types/BoundTypeParameter.java | 55 ++++++++++++++++ .../zwobble/couscous/types/ParameterizedType.java | 57 +++++++++++++++++ .../org/zwobble/couscous/types/ScalarType.java | 73 ++++++++++++++++++++++ src/main/java/org/zwobble/couscous/types/Type.java | 12 ++++ .../org/zwobble/couscous/types/TypeParameter.java | 55 ++++++++++++++++ .../java/org/zwobble/couscous/types/Types.java | 29 +++++++++ .../org/zwobble/couscous/values/BooleanValue.java | 2 +- .../org/zwobble/couscous/values/IntegerValue.java | 2 +- .../couscous/values/InternalCouscousValue.java | 2 +- .../org/zwobble/couscous/values/ObjectValues.java | 2 +- .../zwobble/couscous/values/PrimitiveValue.java | 2 +- .../zwobble/couscous/values/PrimitiveValues.java | 2 +- .../org/zwobble/couscous/values/StringValue.java | 2 +- .../org/zwobble/couscous/values/TypeValue.java | 2 +- .../org/zwobble/couscous/values/UnitValue.java | 2 +- 79 files changed, 379 insertions(+), 382 deletions(-) delete mode 100644 src/main/java/org/zwobble/couscous/ast/types/BoundTypeParameter.java delete mode 100644 src/main/java/org/zwobble/couscous/ast/types/ParameterizedType.java delete mode 100644 src/main/java/org/zwobble/couscous/ast/types/ScalarType.java delete mode 100644 src/main/java/org/zwobble/couscous/ast/types/Type.java delete mode 100644 src/main/java/org/zwobble/couscous/ast/types/TypeParameter.java delete mode 100644 src/main/java/org/zwobble/couscous/ast/types/Types.java create mode 100644 src/main/java/org/zwobble/couscous/types/BoundTypeParameter.java create mode 100644 src/main/java/org/zwobble/couscous/types/ParameterizedType.java create mode 100644 src/main/java/org/zwobble/couscous/types/ScalarType.java create mode 100644 src/main/java/org/zwobble/couscous/types/Type.java create mode 100644 src/main/java/org/zwobble/couscous/types/TypeParameter.java create mode 100644 src/main/java/org/zwobble/couscous/types/Types.java (limited to 'src/main/java/org') 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 accept(Visitor 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 parameters) { - return new ParameterizedType(rawType, parameters); - } - - private final ScalarType rawType; - private final List parameters; - - public ParameterizedType(ScalarType rawType, List parameters) { - this.rawType = rawType; - this.parameters = parameters; - } - - public ScalarType getRawType() { - return rawType; - } - - public List getParameters() { - return parameters; - } - - @Override - public T accept(Visitor 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 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 accept(Visitor 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 accept(Visitor visitor); - - interface Visitor { - 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 accept(Visitor 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() { - @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; diff --git a/src/main/java/org/zwobble/couscous/backends/Names.java b/src/main/java/org/zwobble/couscous/backends/Names.java index 4adbec3..d7b3ac2 100644 --- a/src/main/java/org/zwobble/couscous/backends/Names.java +++ b/src/main/java/org/zwobble/couscous/backends/Names.java @@ -3,7 +3,7 @@ package org.zwobble.couscous.backends; import com.google.common.base.Joiner; import com.google.common.collect.Iterables; import org.zwobble.couscous.ast.MethodSignature; -import org.zwobble.couscous.ast.types.*; +import org.zwobble.couscous.types.*; import static com.google.common.collect.Iterables.transform; import static org.zwobble.couscous.util.ExtraLists.list; diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java index 469705b..dbfb00f 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java @@ -2,15 +2,15 @@ package org.zwobble.couscous.backends.csharp; import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.*; -import org.zwobble.couscous.ast.types.*; import org.zwobble.couscous.ast.visitors.NodeTransformer; import org.zwobble.couscous.backends.Names; +import org.zwobble.couscous.types.*; import org.zwobble.couscous.values.*; import java.util.Map; import java.util.Optional; -import static org.zwobble.couscous.ast.types.Types.erasure; +import static org.zwobble.couscous.types.Types.erasure; import static org.zwobble.couscous.util.Casts.tryCast; import static org.zwobble.couscous.util.ExtraLists.eagerMap; diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java index ced0a82..cb5b027 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java @@ -2,7 +2,7 @@ package org.zwobble.couscous.backends.csharp; import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.ExpressionNode; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.values.BooleanValue; import org.zwobble.couscous.values.IntegerValue; import org.zwobble.couscous.values.ObjectValues; diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java index 46657fc..090a19a 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -1,9 +1,9 @@ package org.zwobble.couscous.backends.csharp; import org.zwobble.couscous.ast.*; -import org.zwobble.couscous.ast.types.*; import org.zwobble.couscous.ast.visitors.NodeVisitor; import org.zwobble.couscous.backends.SourceCodeWriter; +import org.zwobble.couscous.types.*; import org.zwobble.couscous.util.Action; import org.zwobble.couscous.values.PrimitiveValue; import org.zwobble.couscous.values.UnitValue; diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java index d6f9895..9e0a0b9 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -6,8 +6,8 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Iterators; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.structure.NodeStructure; -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.NodeMapperWithDefault; import org.zwobble.couscous.ast.visitors.StatementNodeMapper; @@ -22,7 +22,7 @@ import java.util.stream.Stream; import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.transform; import static com.google.common.collect.Iterators.singletonIterator; -import static org.zwobble.couscous.ast.types.Types.erasure; +import static org.zwobble.couscous.types.Types.erasure; import static org.zwobble.couscous.backends.python.ast.PythonAssignmentNode.pythonAssignment; import static org.zwobble.couscous.backends.python.ast.PythonAttributeAccessNode.pythonAttributeAccess; import static org.zwobble.couscous.backends.python.ast.PythonBooleanLiteralNode.pythonBooleanLiteral; diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonPrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/python/PythonPrimitiveMethods.java index 49d9abf..a290c54 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonPrimitiveMethods.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonPrimitiveMethods.java @@ -3,7 +3,7 @@ package org.zwobble.couscous.backends.python; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap.Builder; import org.zwobble.couscous.ast.Operator; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.backends.python.ast.PythonBinaryOperation; import org.zwobble.couscous.backends.python.ast.PythonExpressionNode; import org.zwobble.couscous.backends.python.ast.PythonNotNode; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/GeneratedClosure.java b/src/main/java/org/zwobble/couscous/frontends/java/GeneratedClosure.java index 18f43be..f9e6415 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/GeneratedClosure.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/GeneratedClosure.java @@ -2,7 +2,7 @@ package org.zwobble.couscous.frontends.java; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.ReferenceNode; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import java.util.List; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionMethodReferenceReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionMethodReferenceReader.java index b08bd0c..9f30467 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionMethodReferenceReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionMethodReferenceReader.java @@ -9,8 +9,8 @@ import org.zwobble.couscous.ast.ExpressionNode; import org.zwobble.couscous.ast.FormalArgumentNode; import org.zwobble.couscous.ast.VariableReferenceNode; import org.zwobble.couscous.ast.sugar.Lambda; -import org.zwobble.couscous.ast.types.Type; -import org.zwobble.couscous.ast.types.Types; +import org.zwobble.couscous.types.Type; +import org.zwobble.couscous.types.Types; import java.util.List; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java index 46d2ab4..75e0b6d 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java @@ -2,8 +2,8 @@ package org.zwobble.couscous.frontends.java; import org.eclipse.jdt.core.dom.*; import org.zwobble.couscous.ast.*; -import org.zwobble.couscous.ast.types.Type; -import org.zwobble.couscous.ast.types.Types; +import org.zwobble.couscous.types.Type; +import org.zwobble.couscous.types.Types; import org.zwobble.couscous.values.BooleanValue; import org.zwobble.couscous.values.IntegerValue; import org.zwobble.couscous.values.ObjectValues; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaLambdaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaLambdaExpressionReader.java index 30dc2f8..75391f7 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaLambdaExpressionReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaLambdaExpressionReader.java @@ -3,9 +3,8 @@ package org.zwobble.couscous.frontends.java; import org.eclipse.jdt.core.dom.*; import org.zwobble.couscous.ast.FormalArgumentNode; import org.zwobble.couscous.ast.StatementNode; -import org.zwobble.couscous.ast.types.*; import org.zwobble.couscous.ast.sugar.Lambda; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import java.util.List; import java.util.Optional; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaMethods.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaMethods.java index 4aa57fd..7b8a004 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaMethods.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaMethods.java @@ -4,9 +4,9 @@ import com.google.common.collect.Iterables; import org.eclipse.jdt.core.dom.IMethodBinding; import org.eclipse.jdt.core.dom.ITypeBinding; import org.zwobble.couscous.ast.MethodSignature; -import org.zwobble.couscous.ast.types.BoundTypeParameter; -import org.zwobble.couscous.ast.types.Type; -import org.zwobble.couscous.ast.types.TypeParameter; +import org.zwobble.couscous.types.BoundTypeParameter; +import org.zwobble.couscous.types.Type; +import org.zwobble.couscous.types.TypeParameter; import java.util.List; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java index f0d42d4..0df0788 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -8,8 +8,8 @@ import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.sugar.AnonymousClass; import org.zwobble.couscous.ast.sugar.Lambda; import org.zwobble.couscous.ast.sugar.TypeDeclarationBody; -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 org.zwobble.couscous.util.ExtraLists; import org.zwobble.couscous.values.ObjectValues; @@ -37,7 +37,7 @@ import static org.zwobble.couscous.ast.StaticReceiver.staticReceiver; import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference; import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion; import static org.zwobble.couscous.ast.VariableReferenceNode.reference; -import static org.zwobble.couscous.ast.types.Types.erasure; +import static org.zwobble.couscous.types.Types.erasure; import static org.zwobble.couscous.frontends.java.FreeVariables.findFreeVariables; import static org.zwobble.couscous.frontends.java.JavaTypes.*; import static org.zwobble.couscous.util.Casts.tryCast; @@ -473,7 +473,7 @@ public class JavaReader { return eagerFlatMap(body, statementReader::readStatement); } - ExpressionNode readExpression(Scope scope, org.zwobble.couscous.ast.types.Type targetType, Expression body) { + ExpressionNode readExpression(Scope scope, Type targetType, Expression body) { return expressionReader(scope).readExpression(targetType, body); } diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java index ac039fb..b21b4d9 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java @@ -3,7 +3,7 @@ package org.zwobble.couscous.frontends.java; import org.eclipse.jdt.core.dom.*; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.sugar.SwitchCaseNode; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.values.BooleanValue; import org.zwobble.couscous.values.ObjectValues; @@ -35,7 +35,7 @@ class JavaStatementReader { JavaStatementReader( Scope scope, JavaExpressionReader expressionReader, - Optional returnType + Optional returnType ) { this.scope = scope; this.expressionReader = expressionReader; diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java index 0223d78..d5f21d0 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java @@ -2,10 +2,10 @@ package org.zwobble.couscous.frontends.java; import com.google.common.collect.ImmutableSet; import org.eclipse.jdt.core.dom.*; -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.ast.types.TypeParameter; +import org.zwobble.couscous.types.ParameterizedType; +import org.zwobble.couscous.types.ScalarType; +import org.zwobble.couscous.types.Type; +import org.zwobble.couscous.types.TypeParameter; import org.zwobble.couscous.values.ObjectValues; import java.util.List; @@ -14,7 +14,7 @@ import java.util.Set; import static com.google.common.collect.Iterables.transform; import static java.util.Arrays.asList; -import static org.zwobble.couscous.ast.types.Types.erasure; +import static org.zwobble.couscous.types.Types.erasure; import static org.zwobble.couscous.util.ExtraLists.eagerMap; class JavaTypes { diff --git a/src/main/java/org/zwobble/couscous/frontends/java/Scope.java b/src/main/java/org/zwobble/couscous/frontends/java/Scope.java index b02601a..98dd30b 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/Scope.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/Scope.java @@ -2,8 +2,8 @@ package org.zwobble.couscous.frontends.java; import org.zwobble.couscous.ast.*; 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.util.NaturalNumbers; import java.util.*; diff --git a/src/main/java/org/zwobble/couscous/interpreter/Environment.java b/src/main/java/org/zwobble/couscous/interpreter/Environment.java index fa5958b..ab36bf0 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/Environment.java +++ b/src/main/java/org/zwobble/couscous/interpreter/Environment.java @@ -1,10 +1,10 @@ package org.zwobble.couscous.interpreter; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.ast.VariableDeclaration; import org.zwobble.couscous.ast.VariableNode; import org.zwobble.couscous.ast.identifiers.Identifier; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.interpreter.errors.UnboundVariable; import org.zwobble.couscous.interpreter.errors.VariableNotInScope; import org.zwobble.couscous.interpreter.values.InterpreterValue; diff --git a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java index 37038ab..3a366e0 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java +++ b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java @@ -1,7 +1,7 @@ package org.zwobble.couscous.interpreter; import org.zwobble.couscous.ast.*; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.ast.visitors.AssignableExpressionNodeVisitor; import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; import org.zwobble.couscous.interpreter.errors.ConditionMustBeBoolean; @@ -13,7 +13,7 @@ import org.zwobble.couscous.values.IntegerValue; import java.util.List; import java.util.stream.Collectors; -import static org.zwobble.couscous.ast.types.Types.erasure; +import static org.zwobble.couscous.types.Types.erasure; public class Evaluator implements ExpressionNodeMapper { public static InterpreterValue eval(Environment environment, ExpressionNode expression) { diff --git a/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java b/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java index fcf20d9..1d8f1b0 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java +++ b/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java @@ -2,8 +2,8 @@ package org.zwobble.couscous.interpreter; import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.MethodSignature; -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.interpreter.values.InterpreterValue; import org.zwobble.couscous.interpreter.values.StaticReceiverValue; diff --git a/src/main/java/org/zwobble/couscous/interpreter/InterpreterTypes.java b/src/main/java/org/zwobble/couscous/interpreter/InterpreterTypes.java index 0ec63b0..c6920c7 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/InterpreterTypes.java +++ b/src/main/java/org/zwobble/couscous/interpreter/InterpreterTypes.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.interpreter.errors.UnexpectedValueType; import org.zwobble.couscous.interpreter.types.InterpreterType; import org.zwobble.couscous.interpreter.values.InterpreterValue; diff --git a/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java b/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java index ebc31ae..7baa8ad 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java +++ b/src/main/java/org/zwobble/couscous/interpreter/MapBackedProject.java @@ -1,12 +1,12 @@ package org.zwobble.couscous.interpreter; import com.google.common.collect.ImmutableMap; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.interpreter.types.InterpreterType; import java.util.Map; -import static org.zwobble.couscous.ast.types.Types.erasure; +import static org.zwobble.couscous.types.Types.erasure; public class MapBackedProject implements Project { public static Builder builder() { diff --git a/src/main/java/org/zwobble/couscous/interpreter/Project.java b/src/main/java/org/zwobble/couscous/interpreter/Project.java index edfbaba..69b59a1 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/Project.java +++ b/src/main/java/org/zwobble/couscous/interpreter/Project.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.interpreter.types.InterpreterType; public interface Project { diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java b/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java index a13612b..a8a4464 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter.errors; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; public class InvalidCast extends InterpreterException { private final Type expected; diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java b/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java index 459d9d7..5e744f4 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter.errors; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; public final class UnexpectedValueType extends InterpreterException { private static final long serialVersionUID = 1L; diff --git a/src/main/java/org/zwobble/couscous/interpreter/types/InterpreterType.java b/src/main/java/org/zwobble/couscous/interpreter/types/InterpreterType.java index 5ee1ae0..8c5bdb9 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/types/InterpreterType.java +++ b/src/main/java/org/zwobble/couscous/interpreter/types/InterpreterType.java @@ -3,7 +3,7 @@ package org.zwobble.couscous.interpreter.types; import org.zwobble.couscous.ast.FieldDeclarationNode; import org.zwobble.couscous.ast.MethodSignature; import org.zwobble.couscous.ast.StatementNode; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.interpreter.Environment; import org.zwobble.couscous.interpreter.values.InterpreterValue; diff --git a/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java b/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java index 96973cb..d69c855 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java +++ b/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java @@ -3,9 +3,9 @@ package org.zwobble.couscous.interpreter.types; import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.FieldDeclarationNode; import org.zwobble.couscous.ast.MethodSignature; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.ast.StatementNode; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.interpreter.Environment; import org.zwobble.couscous.interpreter.PositionalArguments; import org.zwobble.couscous.interpreter.errors.NoSuchMethod; diff --git a/src/main/java/org/zwobble/couscous/interpreter/types/UserDefinedInterpreterType.java b/src/main/java/org/zwobble/couscous/interpreter/types/UserDefinedInterpreterType.java index 32d9018..cc072bf 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/types/UserDefinedInterpreterType.java +++ b/src/main/java/org/zwobble/couscous/interpreter/types/UserDefinedInterpreterType.java @@ -1,8 +1,8 @@ package org.zwobble.couscous.interpreter.types; 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 org.zwobble.couscous.interpreter.Environment; import org.zwobble.couscous.interpreter.Executor; import org.zwobble.couscous.interpreter.InterpreterTypes; diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/Callable.java b/src/main/java/org/zwobble/couscous/interpreter/values/Callable.java index c296797..ff99960 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/Callable.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/Callable.java @@ -2,8 +2,7 @@ package org.zwobble.couscous.interpreter.values; import java.util.List; -import org.zwobble.couscous.ast.types.ScalarType; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; public interface Callable { List getArgumentTypes(); diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java index 8db19f7..2110818 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.values.PrimitiveValue; public class InterpreterValues { diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/MethodValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/MethodValue.java index eeda6f4..239e7ef 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/MethodValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/MethodValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter.values; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.interpreter.Environment; import java.util.List; diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/StaticMethodValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/StaticMethodValue.java index e8223ac..c035070 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/StaticMethodValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/StaticMethodValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter.values; -import org.zwobble.couscous.ast.types.Type; +import org.zwobble.couscous.types.Type; import org.zwobble.couscous.interpreter.Environment; import org.zwobble.couscous.interpreter.PositionalArguments; diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/TypeInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/TypeInterpreterValue.java index a4efddb..b460d00 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/TypeInterpreterValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/TypeInterpreterValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.interpreter.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.interpreter.errors.NoSuchField; import org.zwobble.couscous.interpreter.types.InterpreterType; import org.zwobble.couscous.interpreter.types.IntrinsicInterpreterType; diff --git a/src/main/java/org/zwobble/couscous/types/BoundTypeParameter.java b/src/main/java/org/zwobble/couscous/types/BoundTypeParameter.java new file mode 100644 index 0000000..8eb5f5a --- /dev/null +++ b/src/main/java/org/zwobble/couscous/types/BoundTypeParameter.java @@ -0,0 +1,55 @@ +package org.zwobble.couscous.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 accept(Visitor 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/types/ParameterizedType.java b/src/main/java/org/zwobble/couscous/types/ParameterizedType.java new file mode 100644 index 0000000..7db73e0 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/types/ParameterizedType.java @@ -0,0 +1,57 @@ +package org.zwobble.couscous.types; + +import java.util.List; + +public class ParameterizedType implements Type { + public static ParameterizedType parameterizedType(ScalarType rawType, List parameters) { + return new ParameterizedType(rawType, parameters); + } + + private final ScalarType rawType; + private final List parameters; + + public ParameterizedType(ScalarType rawType, List parameters) { + this.rawType = rawType; + this.parameters = parameters; + } + + public ScalarType getRawType() { + return rawType; + } + + public List getParameters() { + return parameters; + } + + @Override + public T accept(Visitor 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/types/ScalarType.java b/src/main/java/org/zwobble/couscous/types/ScalarType.java new file mode 100644 index 0000000..a96c8c8 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/types/ScalarType.java @@ -0,0 +1,73 @@ +package org.zwobble.couscous.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 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 accept(Visitor visitor) { + return visitor.visit(this); + } +} diff --git a/src/main/java/org/zwobble/couscous/types/Type.java b/src/main/java/org/zwobble/couscous/types/Type.java new file mode 100644 index 0000000..ad0f6fc --- /dev/null +++ b/src/main/java/org/zwobble/couscous/types/Type.java @@ -0,0 +1,12 @@ +package org.zwobble.couscous.types; + +public interface Type { + T accept(Visitor visitor); + + interface Visitor { + 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/types/TypeParameter.java b/src/main/java/org/zwobble/couscous/types/TypeParameter.java new file mode 100644 index 0000000..2bd3123 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/types/TypeParameter.java @@ -0,0 +1,55 @@ +package org.zwobble.couscous.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 accept(Visitor 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/types/Types.java b/src/main/java/org/zwobble/couscous/types/Types.java new file mode 100644 index 0000000..20a3645 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/types/Types.java @@ -0,0 +1,29 @@ +package org.zwobble.couscous.types; + +import org.zwobble.couscous.values.ObjectValues; + +public class Types { + public static ScalarType erasure(Type type) { + return type.accept(new Type.Visitor() { + @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/values/BooleanValue.java b/src/main/java/org/zwobble/couscous/values/BooleanValue.java index b99bd14..8d42e4f 100644 --- a/src/main/java/org/zwobble/couscous/values/BooleanValue.java +++ b/src/main/java/org/zwobble/couscous/values/BooleanValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public final class BooleanValue implements PrimitiveValue { public static final ScalarType REF = ScalarType.of("boolean"); diff --git a/src/main/java/org/zwobble/couscous/values/IntegerValue.java b/src/main/java/org/zwobble/couscous/values/IntegerValue.java index 8e04345..86de00f 100644 --- a/src/main/java/org/zwobble/couscous/values/IntegerValue.java +++ b/src/main/java/org/zwobble/couscous/values/IntegerValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public final class IntegerValue implements PrimitiveValue { public static final ScalarType REF = ScalarType.of("int"); diff --git a/src/main/java/org/zwobble/couscous/values/InternalCouscousValue.java b/src/main/java/org/zwobble/couscous/values/InternalCouscousValue.java index b56abec..0665063 100644 --- a/src/main/java/org/zwobble/couscous/values/InternalCouscousValue.java +++ b/src/main/java/org/zwobble/couscous/values/InternalCouscousValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public class InternalCouscousValue { public static final ScalarType REF = ScalarType.of("_couscous"); diff --git a/src/main/java/org/zwobble/couscous/values/ObjectValues.java b/src/main/java/org/zwobble/couscous/values/ObjectValues.java index ec84d53..1df2de6 100644 --- a/src/main/java/org/zwobble/couscous/values/ObjectValues.java +++ b/src/main/java/org/zwobble/couscous/values/ObjectValues.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public class ObjectValues { public static final ScalarType VOID = ScalarType.of("void"); diff --git a/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java b/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java index 86d32de..0075a30 100644 --- a/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java +++ b/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public interface PrimitiveValue { T accept(Visitor visitor); diff --git a/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java b/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java index 9aac702..fbec8ed 100644 --- a/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java +++ b/src/main/java/org/zwobble/couscous/values/PrimitiveValues.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public class PrimitiveValues { public static final PrimitiveValue UNIT = UnitValue.UNIT; diff --git a/src/main/java/org/zwobble/couscous/values/StringValue.java b/src/main/java/org/zwobble/couscous/values/StringValue.java index 4e7a5f0..6a417f5 100644 --- a/src/main/java/org/zwobble/couscous/values/StringValue.java +++ b/src/main/java/org/zwobble/couscous/values/StringValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public final class StringValue implements PrimitiveValue { diff --git a/src/main/java/org/zwobble/couscous/values/TypeValue.java b/src/main/java/org/zwobble/couscous/values/TypeValue.java index 2bb7c1f..cc8b026 100644 --- a/src/main/java/org/zwobble/couscous/values/TypeValue.java +++ b/src/main/java/org/zwobble/couscous/values/TypeValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public class TypeValue implements PrimitiveValue { private final ScalarType value; diff --git a/src/main/java/org/zwobble/couscous/values/UnitValue.java b/src/main/java/org/zwobble/couscous/values/UnitValue.java index d8a508f..3af8111 100644 --- a/src/main/java/org/zwobble/couscous/values/UnitValue.java +++ b/src/main/java/org/zwobble/couscous/values/UnitValue.java @@ -1,6 +1,6 @@ package org.zwobble.couscous.values; -import org.zwobble.couscous.ast.types.ScalarType; +import org.zwobble.couscous.types.ScalarType; public class UnitValue implements PrimitiveValue { public static final ScalarType REF = ScalarType.of("void"); -- cgit v1.2.3