From 8e6ed5c893d044dfacf10fd6a7687be52a1c20d3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 25 Jul 2026 23:18:50 +0100 Subject: Extract RustTypes.box() --- .../output/generators/rusttypes/RustTypesGenerator.java | 4 ++-- .../hobgoblin/compiler/output/lang/rust/RustTypes.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java (limited to 'src/main') 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)); + } +} -- cgit v1.2.3