From f55983f8a5fefe039df83fc601679fc32e04581e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 30 Jun 2026 20:44:46 +0100 Subject: Write doc comment for Rust structs --- .../compiler/output/lang/java/JavaWriterTests.java | 2 -- .../compiler/output/lang/rust/RustWriterTests.java | 16 ++++++++++++++++ .../output/lang/rust/ast/RustStructStructMatcher.java | 4 ++++ 3 files changed, 20 insertions(+), 2 deletions(-) (limited to 'src/test/java/org') diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java index 992d9bd..cd74430 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java @@ -7,8 +7,6 @@ import org.zwobble.hobgoblin.compiler.output.lang.java.ast.*; import java.io.IOException; import java.io.StringWriter; -import java.io.Writer; -import java.nio.file.NoSuchFileException; import java.util.List; import java.util.Optional; 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 c41bb9e..eca8685 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 @@ -1,6 +1,7 @@ package org.zwobble.hobgoblin.compiler.output.lang.rust; import org.junit.jupiter.api.Test; +import org.zwobble.hobgoblin.compiler.ast.DocComment; import org.zwobble.hobgoblin.compiler.output.CodeWriter; import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.*; @@ -70,6 +71,21 @@ public class RustWriterTests { }""")); } + @Test + public void structWithDocComment() throws IOException { + var rust = RustStructStruct.arbitrary() + .withName(new RustIdentifier("Rectangle")) + .withDocComment(new DocComment("A 2D rectangle.")) + .build(); + + var string = write(writer -> writer.writeItem(rust)); + + assertThat(string, equalTo(""" + /// A 2D rectangle. + pub struct Rectangle { + }""")); + } + @Test public void typeSegmentsAreSeparatedByDoubleColons() throws IOException { var rust = RustTypePath.of("std", "string", "String"); diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustStructStructMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustStructStructMatcher.java index e8c6c39..1bbacef 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustStructStructMatcher.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustStructStructMatcher.java @@ -36,6 +36,10 @@ public class RustStructStructMatcher implements org.zwobble.precisely.Matcher docComment) { + return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStructStructMatcher(java.util.stream.Stream.concat(this.submatchers.stream(), java.util.stream.Stream.of(org.zwobble.precisely.Matchers.has("docComment", org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStructStruct::docComment, docComment))).toList()); + } + // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStructStructMatcher body // Custom area end: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStructStructMatcher body } -- cgit v1.2.3