diff options
Diffstat (limited to 'src/main')
3 files changed, 15 insertions, 6 deletions
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 d87b7ff..a40bd92 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java @@ -293,7 +293,12 @@ public class TypeChecker { var typeCheckedFieldDefinitions = typeCheckFieldDefinitions(untyped.fields(), context); - context.defineSumType(sumType, variants, typeCheckedFieldDefinitions.fields); + context.defineSumType( + sumType, + variants, + typeCheckedFieldDefinitions.fields, + untyped.source() + ); for (var variant : variants) { if (context.isDefined(variant.valueType())) { diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java index 804fd68..56bc5ed 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceContext.java @@ -76,9 +76,10 @@ public class TypeCheckerNamespaceContext { public void defineSumType( SumType sumType, List<SumVariant> variantTypes, - List<Field> fields + List<Field> fields, + Source source ) { - this.typesInfo.defineSumType(sumType, variantTypes, fields); + this.typesInfo.defineSumType(sumType, variantTypes, fields, source); } public List<SumType> variantOf(StructType variantType) { diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypesInfoInMemory.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypesInfoInMemory.java index 64c285b..07c3673 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypesInfoInMemory.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypesInfoInMemory.java @@ -1,5 +1,6 @@ package org.zwobble.hobgoblin.compiler.typechecker; +import org.zwobble.hobgoblin.compiler.sources.Source; import org.zwobble.hobgoblin.compiler.types.*; import java.util.*; @@ -7,7 +8,8 @@ import java.util.*; public class TypesInfoInMemory implements TypesInfo { private record SumTypeInfo( List<SumVariant> variants, - List<Field> fields + List<Field> fields, + Source source ) {} public static TypesInfoInMemory empty() { @@ -69,9 +71,10 @@ public class TypesInfoInMemory implements TypesInfo { public void defineSumType( SumType sumType, List<SumVariant> variants, - List<Field> fields + List<Field> fields, + Source source ) { - var sumTypeInfo = new SumTypeInfo(variants, fields); + var sumTypeInfo = new SumTypeInfo(variants, fields, source); this.sumTypeInfos.put(sumType, sumTypeInfo); for (var variant : variants) { |
