summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java2
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java5
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java8
3 files changed, 9 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java
index 16384a4..1ec1ca0 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java
@@ -1,7 +1,6 @@
package org.zwobble.hobgoblin.compiler.output.lang.rust;
import org.zwobble.hobgoblin.compiler.output.CodeWriter;
-import org.zwobble.hobgoblin.compiler.output.lang.java.JavaWriter;
import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.*;
import java.io.IOException;
@@ -71,6 +70,7 @@ public class RustWriter implements AutoCloseable {
for (var field : structStruct.fields()) {
this.writer.newLine();
+ this.writer.write("pub ");
this.writeIdentifier(field.name());
this.writer.write(": ");
this.writeType(field.type());
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java
index 55944f7..82a6ef3 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/ExampleTests.java
@@ -27,12 +27,17 @@ public class ExampleTests {
HobgoblinCompiler.compile(exampleSet.path());
verifyJavaOutput(exampleSet);
+ verifyRustOutput(exampleSet);
}
private void verifyJavaOutput(ExampleSet exampleSet) throws NoSuchAlgorithmException, IOException, InterruptedException {
verifyOutput(exampleSet, "java", List.of("mvn", "compile"));
}
+ private void verifyRustOutput(ExampleSet exampleSet) throws NoSuchAlgorithmException, IOException, InterruptedException {
+ verifyOutput(exampleSet, "rust", List.of("cargo", "build"));
+ }
+
private void verifyOutput(
ExampleSet exampleSet,
String name,
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 bc6f55e..8062fb9 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
@@ -2,8 +2,6 @@ package org.zwobble.hobgoblin.compiler.output.lang.rust;
import org.junit.jupiter.api.Test;
import org.zwobble.hobgoblin.compiler.output.CodeWriter;
-import org.zwobble.hobgoblin.compiler.output.lang.java.JavaWriter;
-import org.zwobble.hobgoblin.compiler.output.lang.java.JavaWriterTests;
import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.*;
import java.io.IOException;
@@ -54,7 +52,7 @@ public class RustWriterTests {
}
@Test
- public void emptyStructWithFields() throws IOException {
+ public void structWithFields() throws IOException {
var rust = new RustStructStruct(
new RustIdentifier("Rectangle"),
List.of(
@@ -67,8 +65,8 @@ public class RustWriterTests {
assertThat(string, equalTo("""
pub struct Rectangle {
- width: i32,
- height: i32,
+ pub width: i32,
+ pub height: i32,
}"""));
}