From 2302ed0baaaf5bbced5c1b512fcd2f0d72e0b95b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 16 Jul 2023 11:39:29 +0100 Subject: Pass source to TypeCheckerContext::define() --- src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 4 ++-- .../java/org/shedlang/compiler/typechecker/TypeCheckerContext.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index 359c49d1..5563d9bb 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -438,7 +438,7 @@ public class TypeChecker { untyped.source() ); - return context.define(untyped.name(), typed.type()).toResult(typed); + return context.define(untyped.name(), typed.type(), untyped.source()).toResult(typed); } private static TypeCheckerResult typeCheckFunctionReturn( @@ -674,7 +674,7 @@ public class TypeChecker { ) { return switch (target) { case UntypedTargetNode.Variable variable -> { - context = context.define(variable.name(), expressionType); + context = context.define(variable.name(), expressionType, target.source()); yield context.toResult(new TypedTargetNode.Variable(variable.name(), target.source())); } diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerContext.java b/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerContext.java index 5f95fdc3..6b24dd6b 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerContext.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerContext.java @@ -3,6 +3,7 @@ package org.shedlang.compiler.typechecker; import org.pcollections.Empty; import org.pcollections.PMap; import org.shedlang.compiler.ast.typed.FreeVariables; +import org.shedlang.compiler.sources.Source; import org.shedlang.compiler.types.*; import org.shedlang.compiler.util.PCollectors; import org.shedlang.compiler.util.POrderedMap; @@ -125,7 +126,8 @@ public class TypeCheckerContext { public TypeCheckerContext define( String name, - Type type + Type type, + Source source ) { // TODO: check if already defined // TODO: check is not defined -- cgit v1.2.3