From 082e7a06ed147d3bce1116d48b0911119b43af71 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 11 Dec 2024 00:49:43 +0000 Subject: Compile Patio code for positional structs --- .../shedlang/compiler/shidtopatio/ShidToPatioStructs.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStructs.java b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStructs.java index edf1707e..0b88da20 100644 --- a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStructs.java +++ b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStructs.java @@ -83,13 +83,17 @@ public class ShidToPatioStructs { Source source, ShidToPatioContext context ) { + var structTypeInfo = context.structTypeInfo(type); + + var params = fields.stream() + .map(field -> new ShidDefineFunction.Param(field.name(), field.source())) + .toList(); + return ShidToPatioFunctions.create( destination, type.name(), - List.of(), - fields.stream() - .map(field -> new ShidDefineFunction.Param(field.name(), field.source())) - .toList(), + structTypeInfo.fieldsArePositional() ? params : List.of(), + structTypeInfo.fieldsArePositional() ? List.of() : params, FreeVariables.empty(), bodyContext -> { var valuePointerResult = bodyContext.allocateVal( -- cgit v1.2.3