diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-03 11:37:28 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-03 11:37:28 +0100 |
| commit | 1416b1bb15b1048b99b6a92b2923630b13de7e30 (patch) | |
| tree | 66ba346d6a70304ba5f48bed1da0a24ea04ea923 /src/test/java | |
| parent | 2e008d29e5d956f5463fa27c397f395a7e106d9e (diff) | |
Add builder for untyped call nodes
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java | 40 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java | 14 |
2 files changed, 22 insertions, 32 deletions
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java index 46c83cf5..d0351d70 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java @@ -2,9 +2,7 @@ package org.shedlang.compiler.typechecker; import org.junit.jupiter.api.Test; import org.shedlang.compiler.ast.untyped.Untyped; -import org.shedlang.compiler.ast.untyped.UntypedArgsNode; import org.shedlang.compiler.ast.untyped.UntypedCallNode; -import org.shedlang.compiler.sources.Sources; import org.shedlang.compiler.typechecker.errors.*; import org.shedlang.compiler.typechecker.typesets.TypeSets; import org.shedlang.compiler.types.Effects; @@ -259,10 +257,10 @@ public class TypeCheckerCallTests { @Test public void givenFunctionHasEffectsWhenCallingFunctionWithoutExplicitEffectsThenErrorIsThrown() { - var untyped = Untyped.call( - Untyped.reference("f"), - List.of() - ); + var untyped = UntypedCallNode.builder() + .withReceiver(Untyped.reference("f")) + .withHasEffects(false) + .build(); var functionType = FunctionType.builder() .withEffect(Effects.IO) .withReturnType(Types.UNIT) @@ -280,12 +278,10 @@ public class TypeCheckerCallTests { @Test public void givenFunctionHasNoEffectWhenCallingFunctionWithExplicitEffectsThenErrorIsThrown() { - var untyped = new UntypedCallNode( - Untyped.reference("f"), - new UntypedArgsNode(List.of(), List.of(), Sources.NULL), - true, - Sources.NULL - ); + var untyped = UntypedCallNode.builder() + .withReceiver(Untyped.reference("f")) + .withHasEffects(true) + .build(); var functionType = FunctionType.builder() .withEffect(Effects.NONE) .withReturnType(Types.UNIT) @@ -301,12 +297,10 @@ public class TypeCheckerCallTests { @Test public void whenReceiverEffectIsSubEffectOfContextEffectThenCallIsAllowed() { - var untyped = new UntypedCallNode( - Untyped.reference("f"), - new UntypedArgsNode(List.of(), List.of(), Sources.NULL), - true, - Sources.NULL - ); + var untyped = UntypedCallNode.builder() + .withReceiver(Untyped.reference("f")) + .withHasEffects(true) + .build(); var functionType = FunctionType.builder() .withEffect(Effects.IO) .withReturnType(Types.UNIT) @@ -326,12 +320,10 @@ public class TypeCheckerCallTests { @Test public void whenReceiverEffectIsNotSubEffectOfContextEffectThenCallIsNotAllowed() { - var untyped = new UntypedCallNode( - Untyped.reference("f"), - new UntypedArgsNode(List.of(), List.of(), Sources.NULL), - true, - Sources.NULL - ); + var untyped = UntypedCallNode.builder() + .withReceiver(Untyped.reference("f")) + .withHasEffects(true) + .build(); var functionType = FunctionType.builder() .withEffect(Effects.IO) .withReturnType(Types.UNIT) diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java index a7d439dd..c62efde7 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java @@ -2,10 +2,8 @@ package org.shedlang.compiler.typechecker; import org.junit.jupiter.api.Test; import org.shedlang.compiler.ast.untyped.Untyped; -import org.shedlang.compiler.ast.untyped.UntypedArgsNode; import org.shedlang.compiler.ast.untyped.UntypedCallNode; import org.shedlang.compiler.ast.untyped.UntypedFunctionDefinitionNode; -import org.shedlang.compiler.sources.Sources; import org.shedlang.compiler.types.Effects; import org.shedlang.compiler.types.FunctionType; import org.shedlang.compiler.types.NamedParam; @@ -171,12 +169,12 @@ public class TypeCheckerFunctionDefinitionTests { var untyped = UntypedFunctionDefinitionNode.builder() .withEffect(Untyped.typeLevelReference("Io")) .withReturnType(Untyped.typeLevelReference("Unit")) - .addStatement(Untyped.expressionStatement(new UntypedCallNode( - Untyped.reference("f"), - new UntypedArgsNode(List.of(), List.of(), Sources.NULL), - true, - Sources.NULL - ))) + .addStatement(Untyped.expressionStatement( + UntypedCallNode.builder() + .withReceiver(Untyped.reference("f")) + .withHasEffects(true) + .build() + )) .build(); var functionType = FunctionType.builder() .withEffect(Effects.IO) |
