aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-03 11:37:28 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-03 11:37:28 +0100
commit1416b1bb15b1048b99b6a92b2923630b13de7e30 (patch)
tree66ba346d6a70304ba5f48bed1da0a24ea04ea923 /src/test/java
parent2e008d29e5d956f5463fa27c397f395a7e106d9e (diff)
Add builder for untyped call nodes
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java40
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java14
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)