summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedNamespaceStatementNode.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java4
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/Field.java4
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) {
}