diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-04-09 14:21:48 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-04-09 14:21:59 +0100 |
| commit | 0a550c3bb4e624d76b3876e92a2bd0e235301fba (patch) | |
| tree | ee89fc17f79155f830b3413318cf3c2c76364e2d /src/test/java/org/zwobble | |
| parent | f005b283a1b1c74c8b98499069e6afcb5e9a9ade (diff) | |
Remove MethodTypeParameter and adjust Identifier generation
Diffstat (limited to 'src/test/java/org/zwobble')
7 files changed, 29 insertions, 22 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java index 635dae8..dcb7d9e 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java @@ -117,8 +117,8 @@ public abstract class BackendMethodTests { @Test public void whileLoopIsExecutedWhileConditionIsTrue() { - LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.id("x"), "x", Types.INT, literal(0)); - LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.id("y"), "y", Types.INT, literal(2)); + LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.variable("x"), "x", Types.INT, literal(0)); + LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.variable("y"), "y", Types.INT, literal(2)); MethodNode.Builder method = staticMethod("hello") .returns(Types.INT) .statement(x) @@ -132,8 +132,8 @@ public abstract class BackendMethodTests { @Test public void returnWillExitWhileLoopEarly() { - LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.id("x"), "x", Types.INT, literal(0)); - LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.id("y"), "y", Types.INT, literal(2)); + LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.variable("x"), "x", Types.INT, literal(0)); + LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.variable("y"), "y", Types.INT, literal(2)); MethodNode.Builder method = staticMethod("hello") .returns(Types.INT) .statement(x) diff --git a/src/test/java/org/zwobble/couscous/tests/TestIds.java b/src/test/java/org/zwobble/couscous/tests/TestIds.java index b32cf84..da3cd09 100644 --- a/src/test/java/org/zwobble/couscous/tests/TestIds.java +++ b/src/test/java/org/zwobble/couscous/tests/TestIds.java @@ -1,11 +1,12 @@ package org.zwobble.couscous.tests; import org.zwobble.couscous.ast.identifiers.Identifier; +import org.zwobble.couscous.ast.identifiers.Identifiers; public class TestIds { - public static final Identifier ANY_ID = Identifier.TOP.extend("[any id]"); + public static final Identifier ANY_ID = Identifiers.variable(Identifiers.TOP, "[any id]"); - public static Identifier id(String name) { - return ANY_ID.extend(name); + public static Identifier variable(String name) { + return Identifiers.variable(ANY_ID, name); } } diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java index 0e96500..06906ca 100644 --- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java +++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java @@ -61,7 +61,6 @@ public class ValueObjectTests { {LocalVariableDeclarationNode.class}, {MethodCallNode.class}, {MethodNode.class}, - {MethodTypeParameter.class}, {OperationNode.class}, {ParameterizedType.class}, {ReturnNode.class}, @@ -151,7 +150,7 @@ public class ValueObjectTests { } else if (type.equals(Operator.class)) { return Operator.DIVIDE; } else if (type.equals(Identifier.class)) { - return TestIds.id((String)generateFirstInstance(String.class)); + return TestIds.variable((String)generateFirstInstance(String.class)); } else if (type.equals(PrimitiveValue.class)) { return generateFirstInstance(StringValue.class); } else if (type.equals(ExpressionNode.class)) { @@ -181,7 +180,7 @@ public class ValueObjectTests { } else if (type.equals(Operator.class)) { return Operator.MULTIPLY; } else if (type.equals(Identifier.class)) { - return TestIds.id((String)generateSecondInstance(String.class)); + return TestIds.variable((String)generateSecondInstance(String.class)); } else if (type.equals(PrimitiveValue.class)) { return generateSecondInstance(StringValue.class); } else if (type.equals(ExpressionNode.class)) { @@ -211,7 +210,7 @@ public class ValueObjectTests { } else if (type.equals(Operator.class)) { return Operator.ADD; } else if (type.equals(Identifier.class)) { - return TestIds.id((String)generateInstance(String.class)); + return TestIds.variable((String)generateInstance(String.class)); } else if (type.equals(PrimitiveValue.class)) { return generateInstance(StringValue.class); } else if (type.equals(ExpressionNode.class)) { diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java index a2f838f..52849dc 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java @@ -304,8 +304,8 @@ public class CsharpSerializerTests { @Test public void methodWithArguments() { MethodNode methodNode = MethodNode.staticMethod("nothing") - .argument(formalArg(var(TestIds.id("x"), "x", ScalarType.of("X")))) - .argument(formalArg(var(TestIds.id("y"), "y", ScalarType.of("Y")))) + .argument(formalArg(var(TestIds.variable("x"), "x", ScalarType.of("X")))) + .argument(formalArg(var(TestIds.variable("y"), "y", ScalarType.of("Y")))) .returns(ScalarType.of("void")) .build(); diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java index 971ddd9..e9e75c4 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java @@ -3,6 +3,7 @@ package org.zwobble.couscous.tests.frontends.java; import org.junit.Test; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.identifiers.Identifier; +import org.zwobble.couscous.ast.identifiers.Identifiers; import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.types.Types; @@ -92,10 +93,13 @@ public class JavaReaderTests { "}"); MethodNode method = classNode.getMethods().get(0); - assertThat(method.getTypeParameters(), contains(isFormalTypeParameter("T"))); + + Identifier classIdentifier = Identifiers.forType("com.example.Example"); + Identifier expectedMethodIdentifier = Identifiers.method(classIdentifier, "identity"); + assertThat(method.getTypeParameters(), contains(isFormalTypeParameter(expectedMethodIdentifier, "T"))); assertThat( method.getArguments(), - contains(isFormalArgument("value", typeParameter(Identifier.TOP.extend("com.example.Example").extend("identity"), "T")))); + contains(isFormalArgument("value", typeParameter(expectedMethodIdentifier, "T")))); } @Test @@ -337,7 +341,7 @@ public class JavaReaderTests { assertThat(classes, hasSize(1)); ClassNode classNode = (ClassNode) classes.get(0); assertEquals(ScalarType.of("com.example.Example"), classNode.getName()); - assertEquals(list(formalTypeParameter("T")), classNode.getTypeParameters()); + assertEquals(list(formalTypeParameter(Identifiers.forType("com.example.Example"), "T")), classNode.getTypeParameters()); } @Test @@ -348,7 +352,7 @@ public class JavaReaderTests { assertThat(classes, hasSize(1)); InterfaceNode classNode = (InterfaceNode) classes.get(0); assertEquals(ScalarType.of("com.example.Example"), classNode.getName()); - assertEquals(list(formalTypeParameter("T")), classNode.getTypeParameters()); + assertEquals(list(formalTypeParameter(Identifiers.forType("com.example.Example"), "T")), classNode.getTypeParameters()); } @Test diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java index 329ccc7..75c3594 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java @@ -1,7 +1,7 @@ package org.zwobble.couscous.tests.frontends.java; import org.junit.Test; -import org.zwobble.couscous.ast.identifiers.Identifier; +import org.zwobble.couscous.ast.identifiers.Identifiers; import org.zwobble.couscous.frontends.java.JavaTypes; import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.types.TypeParameter; @@ -24,7 +24,7 @@ public class JavaTypesTests { @Test public void bindingTypeToGenericTypeParameterReturnsBoundTypeParameter() { - TypeParameter typeParameter = typeParameter(Identifier.TOP.extend("List"), "T"); + TypeParameter typeParameter = typeParameter(Identifiers.forType("List"), "T"); assertEquals( boundTypeParameter(typeParameter, INT_TYPE), JavaTypes.bind(typeParameter, INT_TYPE)); @@ -33,7 +33,7 @@ public class JavaTypesTests { @Test public void bindingTypeToParameterizedTypeBindsParameters() { ScalarType rawList = ScalarType.of("List"); - TypeParameter typeParameter = typeParameter(Identifier.TOP.extend("List"), "T"); + TypeParameter typeParameter = typeParameter(Identifiers.forType("List"), "T"); assertEquals( parameterizedType(rawList, list(boundTypeParameter(typeParameter, INT_TYPE))), JavaTypes.bind( diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java index 104cf8b..5ef5344 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java @@ -2,6 +2,7 @@ package org.zwobble.couscous.tests.frontends.java; import org.hamcrest.Matcher; import org.zwobble.couscous.ast.*; +import org.zwobble.couscous.ast.identifiers.Identifier; import org.zwobble.couscous.types.Type; import static org.hamcrest.Matchers.allOf; @@ -14,8 +15,10 @@ public class NodeMatchers { return hasFeature("initial value", node -> node.getInitialValue(), matcher); } - public static Matcher<FormalTypeParameterNode> isFormalTypeParameter(String name) { - return hasFeature("name", node -> node.getName(), equalTo(name)); + public static Matcher<FormalTypeParameterNode> isFormalTypeParameter(Identifier declaringScope, String name) { + return allOf( + hasFeature("name", node -> node.getType().getName(), equalTo(name)), + hasFeature("declaringScope", node -> node.getType().getDeclaringScope(), equalTo(declaringScope))); } public static Matcher<FormalArgumentNode> isFormalArgument(String name, Type type) { |
