diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-16 11:39:29 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-16 11:39:29 +0100 |
| commit | 2302ed0baaaf5bbced5c1b512fcd2f0d72e0b95b (patch) | |
| tree | 209b3e6e4c6231bdb8856063efe1c961881f6805 /src/main/java | |
| parent | b02657e9a6a172be263eaefaea842fb0c7572a6e (diff) | |
Pass source to TypeCheckerContext::define()
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 4 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeCheckerContext.java | 4 |
2 files changed, 5 insertions, 3 deletions
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<? extends TypedFunctionStatementNode> 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 |
