aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-02-03 11:56:00 +0000
committerMichael Williamson <mike@zwobble.org>2024-02-03 11:56:00 +0000
commit3d4e3f4a54d128a2a280b5adc921f3d95fb963bb (patch)
treeb8fdf07b9cf6d3f7ceaa7b871f37f1605ec53145 /src/main/java
parente865446205a1009ae68f681466efbb6cbc76ca0e (diff)
Allow any int type in Patio switch
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java8
1 files changed, 5 insertions, 3 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 63ab8d3a..bedfe7e7 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
@@ -380,11 +380,13 @@ public class PatioToWasm {
for (var patioSwitchCase : patioSwitch.cases()) {
context = generateOperand(patioSwitch.value(), context);
- // TODO: should probably allow any int type in switches
- context = context.addInstruction(new WasmI32Const(
+ context = context.addInstruction(wasmIntConst(
+ patioOperandToWasmValueType(patioSwitch.value(), context),
patioSwitchCase.value()
));
- context = context.addInstruction(new WasmI32Eq());
+ context = context.addInstruction(wasmIntEq(
+ patioOperandToWasmValueType(patioSwitch.value(), context)
+ ));
context = context.enterIfInstruction(wasmBlockType);
context = generateBlockBody(patioSwitchCase.body(), context);
context = context.enterElse();