summaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java17
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypeParamMatcher.java6
2 files changed, 23 insertions, 0 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 5b1fe95..31b2c6c 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
@@ -135,6 +135,23 @@ public class RustWriterTests {
assertThat(string, equalTo("type X<T1, T2> = Y;"));
}
+ @Test
+ public void typeAliasWithBoundedTypeParam() throws IOException {
+ var rust = RustTypeAlias.arbitrary()
+ .withName(RustIdentifier.of("X"))
+ .addParam(RustTypeParam.arbitrary()
+ .withName(RustIdentifier.of("T1"))
+ .addBound(RustPath.of("B1"))
+ .addBound(RustPath.of("B2"))
+ )
+ .withType(RustPath.of("Y"))
+ .build();
+
+ var string = write(writer -> writer.writeItem(rust));
+
+ assertThat(string, equalTo("type X<T1: B1 + B2> = Y;"));
+ }
+
// === Structs ===
@Test
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypeParamMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypeParamMatcher.java
index 99e09bc..dc6eddc 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypeParamMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypeParamMatcher.java
@@ -36,6 +36,12 @@ public final class RustTypeParamMatcher implements org.zwobble.precisely.Matcher
return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParamMatcher(submatchers);
}
+ public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParamMatcher withBounds(org.zwobble.precisely.Matcher<? super java.util.List<org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustPath>> bounds) {
+ var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParam>>(this.submatchers);
+ submatchers.add(org.zwobble.precisely.Matchers.has("bounds", org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParam::bounds, bounds));
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParamMatcher(submatchers);
+ }
+
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParamMatcher body
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypeParamMatcher body
}