aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-31 11:24:43 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-31 11:24:43 +0000
commit0dccfde55d3bba5e7c75ff35fc9d6a1c657a3d85 (patch)
treedfa581fc740326b2e238bc679ce143951f3c98b2 /src/test/java
parent4316c4a80e33ceea40990472f215440a6f678623 (diff)
Use FunctionType builder instead of calling constructor directly
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/config/ConfigCheckerTests.java16
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java4
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java37
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java2
-rw-r--r--src/test/java/org/shedlang/compiler/types/FunctionTypeTests.java64
5 files changed, 65 insertions, 58 deletions
diff --git a/src/test/java/org/shedlang/compiler/config/ConfigCheckerTests.java b/src/test/java/org/shedlang/compiler/config/ConfigCheckerTests.java
index 3c53df73..b3468c6e 100644
--- a/src/test/java/org/shedlang/compiler/config/ConfigCheckerTests.java
+++ b/src/test/java/org/shedlang/compiler/config/ConfigCheckerTests.java
@@ -6,7 +6,6 @@ import org.shedlang.compiler.typechecker.TypeInfos;
import org.shedlang.compiler.types.*;
import java.io.IOException;
-import java.util.List;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.zwobble.precisely.AssertThat.assertThat;
@@ -22,7 +21,10 @@ public class ConfigCheckerTests {
NamespaceTypeInfo.builder()
.addField(
"main",
- new FunctionType(List.of(), List.of(), Effects.IO, Types.UNIT)
+ FunctionType.builder()
+ .withEffect(Effects.IO)
+ .withReturnType(Types.UNIT)
+ .build()
)
.build()
);
@@ -52,7 +54,10 @@ public class ConfigCheckerTests {
NamespaceTypeInfo.builder()
.addField(
"main2",
- new FunctionType(List.of(), List.of(), Effects.IO, Types.UNIT)
+ FunctionType.builder()
+ .withEffect(Effects.IO)
+ .withReturnType(Types.UNIT)
+ .build()
)
.build()
);
@@ -74,7 +79,10 @@ public class ConfigCheckerTests {
NamespaceTypeInfo.builder()
.addField(
"main",
- new FunctionType(List.of(), List.of(), Effects.IO, Types.STRING)
+ FunctionType.builder()
+ .withEffect(Effects.IO)
+ .withReturnType(Types.STRING)
+ .build()
)
.build()
);
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java
index 47813c25..cbca6f6d 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java
@@ -6,13 +6,11 @@ import org.shedlang.compiler.ast.untyped.UntypedFunctionDefinitionNode;
import org.shedlang.compiler.typechecker.errors.CannotCaptureVarError;
import org.shedlang.compiler.typechecker.errors.FunctionSignatureMissingParamTypeError;
import org.shedlang.compiler.typechecker.errors.FunctionSignatureMissingReturnTypeError;
-import org.shedlang.compiler.types.Effects;
import org.shedlang.compiler.types.FunctionType;
import org.shedlang.compiler.types.NamespaceName;
import org.shedlang.compiler.types.Types;
import org.shedlang.compiler.util.P;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -42,7 +40,7 @@ public class TypeCheckerFunctionDefinitionTests {
.withEffect(isOptionalEmpty())
.withReturnType(isTypedTypeLevelReferenceNode("Unit", Types.UNIT))
.withBodyBlock(isTypedBlockNode(isSequence()))
- .withType(new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT))
+ .withType(FunctionType.builder().withReturnType(Types.UNIT).build())
);
}
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java
index 27b5b444..8f4bb98b 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java
@@ -5,10 +5,11 @@ import org.shedlang.compiler.ast.untyped.Untyped;
import org.shedlang.compiler.ast.untyped.UntypedFunctionExpressionNode;
import org.shedlang.compiler.typechecker.errors.CannotCaptureVarError;
import org.shedlang.compiler.typechecker.errors.FunctionSignatureMissingParamTypeError;
-import org.shedlang.compiler.types.*;
+import org.shedlang.compiler.types.FunctionType;
+import org.shedlang.compiler.types.NamespaceName;
+import org.shedlang.compiler.types.Types;
import org.shedlang.compiler.util.P;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -35,7 +36,7 @@ public class TypeCheckerFunctionExpressionTests {
.withEffect(isOptionalEmpty())
.withReturnType(isTypedTypeLevelReferenceNode("Unit", Types.UNIT))
.withBodyBlock(isTypedBlockNode(isSequence()))
- .withType(new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT))
+ .withType(FunctionType.builder().withReturnType(Types.UNIT).build())
);
}
@@ -52,7 +53,7 @@ public class TypeCheckerFunctionExpressionTests {
assertThat(
typed.value(),
isTypedFunctionExpressionNode()
- .withType(new FunctionType(List.of(), List.of(), Effects.NONE, Types.STRING))
+ .withType(FunctionType.builder().withReturnType(Types.STRING).build())
);
}
@@ -65,14 +66,24 @@ public class TypeCheckerFunctionExpressionTests {
var typed = TypeChecker.typeCheckExpression(
untyped,
- Optional.of(new FunctionType(List.of(Types.STRING), List.of(), Effects.NONE, Types.UNIT)),
+ Optional.of(
+ FunctionType.builder()
+ .addPositionalParam(Types.STRING)
+ .withReturnType(Types.UNIT)
+ .build()
+ ),
context
);
assertThat(
typed.value(),
isTypedFunctionExpressionNode()
- .withType(new FunctionType(List.of(Types.STRING), List.of(), Effects.NONE, Types.UNIT))
+ .withType(
+ FunctionType.builder()
+ .addPositionalParam(Types.STRING)
+ .withReturnType(Types.UNIT)
+ .build()
+ )
);
}
@@ -102,14 +113,24 @@ public class TypeCheckerFunctionExpressionTests {
var typed = TypeChecker.typeCheckExpression(
untyped,
- Optional.of(new FunctionType(List.of(), List.of(new NamedParam("x", Types.STRING)), Effects.NONE, Types.UNIT)),
+ Optional.of(
+ FunctionType.builder()
+ .addNamedParam("x", Types.STRING)
+ .withReturnType(Types.UNIT)
+ .build()
+ ),
context
);
assertThat(
typed.value(),
isTypedFunctionExpressionNode()
- .withType(new FunctionType(List.of(), List.of(new NamedParam("x", Types.STRING)), Effects.NONE, Types.UNIT))
+ .withType(
+ FunctionType.builder()
+ .addNamedParam("x", Types.STRING)
+ .withReturnType(Types.UNIT)
+ .build()
+ )
);
}
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java
index 16890569..28b2421e 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java
@@ -551,7 +551,7 @@ public class TypeCheckerNamespaceTests {
namespaceTypeInfo,
equalTo(
NamespaceTypeInfo.builder()
- .addField("g", new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT))
+ .addField("g", FunctionType.builder().withReturnType(Types.UNIT).build())
.build()
)
);
diff --git a/src/test/java/org/shedlang/compiler/types/FunctionTypeTests.java b/src/test/java/org/shedlang/compiler/types/FunctionTypeTests.java
index d182ce19..e6f6bab4 100644
--- a/src/test/java/org/shedlang/compiler/types/FunctionTypeTests.java
+++ b/src/test/java/org/shedlang/compiler/types/FunctionTypeTests.java
@@ -2,20 +2,15 @@ package org.shedlang.compiler.types;
import org.junit.jupiter.api.Test;
-import java.util.List;
-
import static org.zwobble.precisely.AssertThat.assertThat;
import static org.zwobble.precisely.Matchers.equalTo;
public class FunctionTypeTests {
@Test
public void descriptionIncludesReturnType() {
- var functionType = new FunctionType(
- List.of(),
- List.of(),
- Effects.NONE,
- Types.STRING
- );
+ var functionType = FunctionType.builder()
+ .withReturnType(Types.STRING)
+ .build();
var result = functionType.describe();
@@ -24,15 +19,11 @@ public class FunctionTypeTests {
@Test
public void descriptionIncludesPositionalParams() {
- var functionType = new FunctionType(
- List.of(
- Types.INT,
- Types.BOOL
- ),
- List.of(),
- Effects.NONE,
- Types.STRING
- );
+ var functionType = FunctionType.builder()
+ .addPositionalParam(Types.INT)
+ .addPositionalParam(Types.BOOL)
+ .withReturnType(Types.STRING)
+ .build();
var result = functionType.describe();
@@ -41,15 +32,11 @@ public class FunctionTypeTests {
@Test
public void descriptionIncludesNamedParams() {
- var functionType = new FunctionType(
- List.of(),
- List.of(
- new NamedParam("a", Types.INT),
- new NamedParam("b", Types.BOOL)
- ),
- Effects.NONE,
- Types.STRING
- );
+ var functionType = FunctionType.builder()
+ .addNamedParam("a", Types.INT)
+ .addNamedParam("b", Types.BOOL)
+ .withReturnType(Types.STRING)
+ .build();
var result = functionType.describe();
@@ -58,16 +45,11 @@ public class FunctionTypeTests {
@Test
public void positionalParamsAndNamedParamsAreCommaSeparated() {
- var functionType = new FunctionType(
- List.of(
- Types.INT
- ),
- List.of(
- new NamedParam("b", Types.BOOL)
- ),
- Effects.NONE,
- Types.STRING
- );
+ var functionType = FunctionType.builder()
+ .addPositionalParam(Types.INT)
+ .addNamedParam("b", Types.BOOL)
+ .withReturnType(Types.STRING)
+ .build();
var result = functionType.describe();
@@ -76,12 +58,10 @@ public class FunctionTypeTests {
@Test
public void descriptionIncludesEffect() {
- var functionType = new FunctionType(
- List.of(),
- List.of(),
- Effects.IO,
- Types.STRING
- );
+ var functionType = FunctionType.builder()
+ .withEffect(Effects.IO)
+ .withReturnType(Types.STRING)
+ .build();
var result = functionType.describe();