summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java30
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustFunctionMatcher.java6
2 files changed, 27 insertions, 9 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java
index c74f83b..55549b0 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java
@@ -136,8 +136,7 @@ public class RustWriterTests {
var string = write(writer -> writer.writeAssociatedItem(rust));
assertThat(string, equalTo("""
- fn width() {
- }"""));
+ fn width();"""));
}
@Test
@@ -151,8 +150,7 @@ public class RustWriterTests {
var string = write(writer -> writer.writeAssociatedItem(rust));
assertThat(string, equalTo("""
- fn area(width: i32, height: u64) {
- }"""));
+ fn area(width: i32, height: u64);"""));
}
@Test
@@ -165,7 +163,23 @@ public class RustWriterTests {
var string = write(writer -> writer.writeAssociatedItem(rust));
assertThat(string, equalTo("""
- fn area() -> i32 {
+ fn area() -> i32;"""));
+ }
+
+ @Test
+ public void functionWithBody() throws IOException {
+ var rust = RustFunction.arbitrary()
+ .withName(new RustIdentifier("predicate"))
+ .withBody(RustBlockExpression.arbitrary()
+ .withFinalOperand(RustBoolLiteral.arbitrary().withValue(false).build())
+ .build())
+ .build();
+
+ var string = write(writer -> writer.writeAssociatedItem(rust));
+
+ assertThat(string, equalTo("""
+ fn predicate() {
+ false
}"""));
}
@@ -192,11 +206,9 @@ public class RustWriterTests {
assertThat(string, equalTo("""
impl Square {
- fn width() {
- }
+ fn width();
- fn height() {
- }
+ fn height();
}"""));
}
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustFunctionMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustFunctionMatcher.java
index 1526d18..acbc32c 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustFunctionMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustFunctionMatcher.java
@@ -46,6 +46,12 @@ public class RustFunctionMatcher implements org.zwobble.precisely.Matcher<java.l
return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunctionMatcher(submatchers);
}
+ public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunctionMatcher withBody(org.zwobble.precisely.Matcher<? super java.util.Optional<org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustBlockExpression>> body) {
+ var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunction>>(this.submatchers);
+ submatchers.add(org.zwobble.precisely.Matchers.has("body", org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunction::body, body));
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunctionMatcher(submatchers);
+ }
+
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunctionMatcher body
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustFunctionMatcher body
}