summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java
index e37a974..6f8de50 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java
@@ -898,7 +898,7 @@ public class RustTransient0Generator implements Generator {
new RustBlockExpression(
List.of(),
Optional.of(
- methodCall(
+ new RustTryPropagationExpression(mapErr(
methodCall(
new RustCallExpression(
RustTypes.ARC.addSegment(RustPathSegment.of("clone")),
@@ -913,10 +913,14 @@ public class RustTransient0Generator implements Generator {
RustIdentifier.of("downcast"),
List.of()
),
- // TODO: remove unwrap
- RustIdentifier.of("unwrap"),
- List.of()
- )
+ _ -> new RustCallExpression(
+ RustPath.global("std", "io", "Error", "new"),
+ List.of(
+ RustPath.global("std", "io", "ErrorKind", "InvalidData"),
+ new RustStringLiteral("referenced value has wrong type")
+ )
+ )
+ ))
)
),
new RustBlockExpression(