From eed6af3b589f6c6eee94585447028e492653d499 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 10 Dec 2024 23:40:54 +0000 Subject: Preserve positionality of struct fields when typing struct --- .../org/shedlang/compiler/ast/typed/TypedStructFieldDefinitionNode.java | 1 + src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 1 + 2 files changed, 2 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/ast/typed/TypedStructFieldDefinitionNode.java b/src/main/java/org/shedlang/compiler/ast/typed/TypedStructFieldDefinitionNode.java index a84517a0..6dc492d2 100644 --- a/src/main/java/org/shedlang/compiler/ast/typed/TypedStructFieldDefinitionNode.java +++ b/src/main/java/org/shedlang/compiler/ast/typed/TypedStructFieldDefinitionNode.java @@ -6,6 +6,7 @@ import org.shedlang.compiler.types.Type; public record TypedStructFieldDefinitionNode( String name, TypedTypeLevelExpressionNode type, + boolean isPositional, Source source ) implements TypedNode { } diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index 2cb726d4..08ce187b 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -1661,6 +1661,7 @@ public class TypeChecker { var typedFieldNode = new TypedStructFieldDefinitionNode( untypedField.name(), typeCheckTypeExpression(untypedField.type(), context), + untypedField.isPositional(), untypedField.source() ); typedFieldNodes.add(typedFieldNode); -- cgit v1.2.3