From 052177994ca489078cf6057064ea2a97b35fe5d1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 28 Oct 2023 23:21:10 +0100 Subject: Introduce TypedFunctionBodyNode --- .../ast/typed/TypedFunctionDefinitionNodeMatcher.java | 6 +++--- .../typechecker/TypeCheckerFunctionDefinitionTests.java | 12 ++++++------ .../compiler/typechecker/TypeCheckerImportTests.java | 2 +- .../compiler/typechecker/TypeCheckerNamespaceTests.java | 2 +- .../shedlang/compiler/typechecker/TypeCheckerValTests.java | 2 +- .../shedlang/compiler/typechecker/TypeCheckerVarTests.java | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/ast/typed/TypedFunctionDefinitionNodeMatcher.java b/src/test/java/org/shedlang/compiler/ast/typed/TypedFunctionDefinitionNodeMatcher.java index 92e0c8e1..06963d8d 100644 --- a/src/test/java/org/shedlang/compiler/ast/typed/TypedFunctionDefinitionNodeMatcher.java +++ b/src/test/java/org/shedlang/compiler/ast/typed/TypedFunctionDefinitionNodeMatcher.java @@ -30,8 +30,8 @@ public class TypedFunctionDefinitionNodeMatcher extends MatcherBuilder body) { - return with(has("body", x -> x.body(), body)); + public TypedFunctionDefinitionNodeMatcher withBodyBlock(Matcher body) { + return with(has("body", x -> x.body().block(), body)); } public TypedFunctionDefinitionNodeMatcher withEffect(Matcher>> effect) { @@ -39,7 +39,7 @@ public class TypedFunctionDefinitionNodeMatcher extends MatcherBuilder> freeVariables) { - return with(has("freeVariables", x -> x.freeVariables(), freeVariables)); + return with(has("freeVariables", x -> x.body().freeVariables(), freeVariables)); } public TypedFunctionDefinitionNodeMatcher withName(String name) { diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java index 12213ba9..eaa7f007 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java @@ -40,7 +40,7 @@ public class TypeCheckerFunctionDefinitionTests { .withParams(isTypedParamsNode(isSequence(), isSequence())) .withEffect(isOptionalEmpty()) .withReturnType(isTypedTypeLevelReferenceNode("Unit", Types.UNIT)) - .withBody(isTypedBlockNode(isSequence())) + .withBodyBlock(isTypedBlockNode(isSequence())) .withType(new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT)) ); } @@ -82,7 +82,7 @@ public class TypeCheckerFunctionDefinitionTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedExpressionStatementNode(isTypedStringLiteralNode("hello")) ))) ); @@ -106,7 +106,7 @@ public class TypeCheckerFunctionDefinitionTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedExpressionStatementNode(isTypedReferenceNode("x", Types.STRING)) ))) ); @@ -130,7 +130,7 @@ public class TypeCheckerFunctionDefinitionTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedExpressionStatementNode(isTypedReferenceNode("x", Types.STRING)) ))) ); @@ -165,7 +165,7 @@ public class TypeCheckerFunctionDefinitionTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedExpressionStatementNode(isTypedCallNode().withHasEffects(true)) ))) ); @@ -347,7 +347,7 @@ public class TypeCheckerFunctionDefinitionTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNodeWithBoundVariableNames(containsExactly( + .withBodyBlock(isTypedBlockNodeWithBoundVariableNames(containsExactly( equalTo("argPositional"), equalTo("argNamed"), equalTo("local1") diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerImportTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerImportTests.java index 23c04a25..260c14a5 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerImportTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerImportTests.java @@ -36,7 +36,7 @@ public class TypeCheckerImportTests { result.value(), isTypedNamespaceNode().withBody(isSequence( isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedExpressionStatementNode( isTypedReferenceNode("Imported", Types.namespace(importedNamespaceName)) ) diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java index 85515dad..77a4432b 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java @@ -444,7 +444,7 @@ public class TypeCheckerNamespaceTests { isTypedNamespaceNode() .withBody(isSequence( isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedExpressionStatementNode(isTypedExpressionNode(Types.STRING)) ))), isTypedStructDefinitionNode() diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java index 7ff435a2..d8c98535 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java @@ -61,7 +61,7 @@ public class TypeCheckerValTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedAssignNode(anything(), anything()), isTypedExpressionStatementNode(isTypedReferenceNode("x", Types.STRING)) ))) diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java index 53e2e65f..5efdd2c5 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java @@ -46,7 +46,7 @@ public class TypeCheckerVarTests { assertThat( typed.value(), isTypedFunctionDefinitionNode() - .withBody(isTypedBlockNode(isSequence( + .withBodyBlock(isTypedBlockNode(isSequence( isTypedAssignNode(anything(), anything()), isTypedExpressionStatementNode(isTypedReferenceNode("x", Types.STRING)) ))) -- cgit v1.2.3