diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-26 21:53:39 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-26 21:53:39 +0000 |
| commit | 40c5d50a36ce1e38b299a779d16352fcfdc6844e (patch) | |
| tree | dfd4f2c6fa89569ce5e3f9732e3a9cd0a475918b /src/main/java/org | |
| parent | ff3ff36d82e801a6b61ce230bb82da1ecd904dc5 (diff) | |
Use platform type for function return types
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java | 19 |
1 files changed, 15 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 e212535a..fc28d310 100644 --- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java +++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java @@ -77,7 +77,10 @@ public class PatioToWasm { patioFunctionDeclaration.params().stream() .map(param -> patioTypeToWasmValueType(param.type(), platformTarget)) .toList(), - patioTypeToWasmResultTypes(patioFunctionDeclaration.returnType()) + patioTypeToWasmResultTypes( + patioFunctionDeclaration.returnType(), + platformTarget + ) ); module = module.addImport(new WasmImport( @@ -111,7 +114,10 @@ public class PatioToWasm { } } - var wasmResultTypes = patioTypeToWasmResultTypes(patioFunctionDefinition.returnType()); + var wasmResultTypes = patioTypeToWasmResultTypes( + patioFunctionDefinition.returnType(), + platformTarget + ); var context = generateInstructions( patioFunctionDefinition.body(), @@ -675,8 +681,13 @@ public class PatioToWasm { return platformTarget.patioIntType(); } - private static List<WasmValueType> patioTypeToWasmResultTypes(PatioType type) { - return type instanceof PatioVoidType ? List.of() : List.of(WasmValueType.I32); + private static List<WasmValueType> patioTypeToWasmResultTypes( + PatioType type, + WasmTarget platformTarget + ) { + return type instanceof PatioVoidType + ? List.of() + : List.of(patioTypeToWasmValueType(type, platformTarget)); } private static class Context { |
