summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriter.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustLetStatement.java20
2 files changed, 17 insertions, 8 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 19b194f..6febdde 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
@@ -300,6 +300,11 @@ public class RustWriter implements AutoCloseable {
private void writeLetStatement(RustLetStatement letStatement) throws IOException {
this.writer.write("let ");
+
+ if (letStatement.mutable()) {
+ this.writer.write("mut ");
+ }
+
this.writeIdentifier(letStatement.variableName());
this.writer.write(" = ");
this.writeExpression(letStatement.value());
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustLetStatement.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustLetStatement.java
index 810218f..876351f 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustLetStatement.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustLetStatement.java
@@ -5,30 +5,34 @@ package org.zwobble.hobgoblin.compiler.output.lang.rust.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement imports
-public record RustLetStatement(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier variableName, org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustExpression value) implements org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStatement {
+public record RustLetStatement(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier variableName, boolean mutable, org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustExpression value) implements org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStatement {
public static org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustBlockExpression.arbitrary().build());
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier.arbitrary().build(), false, org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustBlockExpression.arbitrary().build());
}
- public record Builder(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier variableName, org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustExpression value) implements org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStatement.Builder {
+ public record Builder(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier variableName, boolean mutable, org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustExpression value) implements org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustStatement.Builder {
public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement(variableName, value);
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement(variableName, mutable, value);
}
public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder withVariableName(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier variableName) {
- return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, value);
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, mutable, value);
}
public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder withVariableName(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustIdentifier.Builder variableName) {
- return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName.build(), value);
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName.build(), mutable, value);
+ }
+
+ public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder withMutable(boolean mutable) {
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, mutable, value);
}
public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder withValue(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustExpression value) {
- return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, value);
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, mutable, value);
}
public org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder withValue(org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustExpression.Builder value) {
- return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, value.build());
+ return new org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder(variableName, mutable, value.build());
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustLetStatement.Builder body