diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-12-22 20:44:49 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-12-22 20:44:49 +0000 |
| commit | 8f0f5c7f448b49652d4a3d6be70b0e867859a6d0 (patch) | |
| tree | b07d21c4fa042b6ba5835fbfb1f802622beb01b4 /src/main/java | |
| parent | 6dd0bb83ea290fcf30f554185d18928e93219180 (diff) | |
Support any result type for Patio try
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java index c4e73446..707d9a87 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java @@ -361,6 +361,7 @@ public class PatioToWasm { case PatioSwitch patioSwitch -> { // TODO: use br_table? + var wasmBlockTypeResult = generateBlockType(patioSwitch.destinations(), context); var wasmBlockType = wasmBlockTypeResult.value(); context = wasmBlockTypeResult.context(); @@ -399,10 +400,11 @@ public class PatioToWasm { } case PatioTry try_ -> { - // TODO: don't assume we always have a Patio int - context = context.enterTryInstruction( - WasmBlockType.of(target.patioIntType()) - ); + var wasmBlockTypeResult = generateBlockType(try_.destinations(), context); + var wasmBlockType = wasmBlockTypeResult.value(); + context = wasmBlockTypeResult.context(); + + context = context.enterTryInstruction(wasmBlockType); context = generateBlockBody(try_.body(), context); |
