summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-25 23:18:50 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-25 23:18:50 +0100
commit8e6ed5c893d044dfacf10fd6a7687be52a1c20d3 (patch)
tree26772362e81a9c20dbdb05e95d2cf0edc11562d2 /src/main/java/org/zwobble
parent26ab534795dcced8ae6e7b4898b50748b73c930e (diff)
Extract RustTypes.box()
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java4
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java15
2 files changed, 17 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
index 42e46cb..99b4208 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
@@ -5,6 +5,7 @@ import org.zwobble.hobgoblin.compiler.config.OutputConfig;
import org.zwobble.hobgoblin.compiler.output.generators.Generator;
import org.zwobble.hobgoblin.compiler.output.generators.rust.RustGenerator;
import org.zwobble.hobgoblin.compiler.output.generators.rust.RustGeneratorConfig;
+import org.zwobble.hobgoblin.compiler.output.lang.rust.RustTypes;
import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.*;
import org.zwobble.hobgoblin.compiler.typechecker.TypesInfo;
import org.zwobble.hobgoblin.compiler.types.NamespaceName;
@@ -158,8 +159,7 @@ public class RustTypesGenerator implements Generator {
var variantType = generateRustTypeExpression(variant.type(), context);
if (variant.isBox()) {
- variantType = RustPath.global("std", "boxed", "Box")
- .withArgs(List.of(variantType));
+ variantType = RustTypes.box(variantType);
}
return new RustEnumVariant(
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java
new file mode 100644
index 0000000..bbc0c67
--- /dev/null
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java
@@ -0,0 +1,15 @@
+package org.zwobble.hobgoblin.compiler.output.lang.rust;
+
+import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustPath;
+import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustType;
+
+import java.util.List;
+
+public class RustTypes {
+ private RustTypes() {}
+
+ public static RustPath box(RustType elementType) {
+ return RustPath.global("std", "boxed", "Box")
+ .withArgs(List.of(elementType));
+ }
+}