diff options
Diffstat (limited to 'src/main')
3 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceStatementNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceStatementNode.java index 9223ec5..4869d3c 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceStatementNode.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceStatementNode.java @@ -15,6 +15,8 @@ public sealed interface UntypedNamespaceStatementNode permits org.zwobble.hobgob public String name(); + public org.zwobble.hobgoblin.compiler.sources.Source source(); + // Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode body // Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedNamespaceStatementNode body } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java index 408a0b2..f1b5067 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java @@ -47,7 +47,7 @@ public class TypeChecker { var fields = new ArrayList<Field>(); for (var untypedStatement : untyped.body()) { var type = declareNamespaceStatement(untypedStatement, namespaceContext); - var field = new Field(untypedStatement.name(), type); + var field = new Field(untypedStatement.name(), type, untypedStatement.source()); fields.add(field); } context.defineNamespace(untyped.namespaceName(), fields); @@ -223,7 +223,7 @@ public class TypeChecker { untypedField.source() ); typedFields.add(typedField); - fields.add(new Field(untypedField.name(), fieldType.value())); + fields.add(new Field(untypedField.name(), fieldType.value(), untypedField.source())); } return new TypeCheckFieldDefinitionsResult(typedFields, fields); } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/Field.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/Field.java index e806c11..3d1f909 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/types/Field.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/Field.java @@ -1,4 +1,6 @@ package org.zwobble.hobgoblin.compiler.types; -public record Field(String name, Type type) { +import org.zwobble.hobgoblin.compiler.sources.Source; + +public record Field(String name, Type type, Source source) { } |
