lang: Make scope error messages be more consistent

This commit is contained in:
James Shubin
2025-03-12 00:23:20 -04:00
parent 87d8533bd0
commit a6057319a9
6 changed files with 9 additions and 7 deletions

View File

@@ -9768,7 +9768,7 @@ func (obj *ExprCall) SetScope(scope *interfaces.Scope, sctx map[string]interface
if obj.data.Debug || true { // TODO: leave this on permanently?
lambdaScopeFeedback(obj.scope, obj.data.Logf)
}
return fmt.Errorf("func `%s` does not exist in this scope", prefixedName)
return fmt.Errorf("lambda `$%s` does not exist in this scope", prefixedName)
}
target = f
}
@@ -10462,7 +10462,7 @@ func (obj *ExprVar) SetScope(scope *interfaces.Scope, sctx map[string]interfaces
if obj.data.Debug || true { // TODO: leave this on permanently?
variableScopeFeedback(obj.scope, obj.data.Logf)
}
return fmt.Errorf("variable %s not in scope", obj.Name)
return fmt.Errorf("var `$%s` does not exist in this scope", obj.Name)
}
obj.scope.Variables[obj.Name] = target

View File

@@ -6,4 +6,4 @@ if true {
$b = true
}
-- OUTPUT --
# err: errSetScope: variable b not in scope
# err: errSetScope: var `$b` does not exist in this scope

View File

@@ -16,7 +16,8 @@ panic($i0.x != "goodbye")
panic($i1.y != "hello")
# the really tricky case
# XXX: works atm, but not supported for now: could not set scope: variable i0.y not in scope
# XXX: works atm, but not supported for now, error is:
# could not set scope: var `$i0.y` does not exist in this scope
# We currently re-export anything in the parent scope as available from our
# current child scope, which makes this variable visible. Unfortunately, it does
# not have the correct dependency (edge) present in the Ordering system, so it

View File

@@ -7,4 +7,4 @@ $f = func($x) {
$name = $f("foo")
test "${name}" {}
-- OUTPUT --
# err: errSetScope: variable x not in scope
# err: errSetScope: var `$x` does not exist in this scope

View File

@@ -14,7 +14,8 @@ test "${f1.z}" {}
test "${f1.x1}" {}
# the really tricky case
# XXX: works atm, but not supported for now: could not set scope: variable f1.x2 not in scope
# XXX: works atm, but not supported for now, error is:
# could not set scope: var `$f1.x2` does not exist in this scope
# We currently re-export anything in the parent scope as available from our
# current child scope, which makes this variable visible. Unfortunately, it does
# not have the correct dependency (edge) present in the Ordering system, so it

View File

@@ -11,4 +11,4 @@ $x = "this is x.mcl"
import "x.mcl" as f
$y = $f.x + " and this is y.mcl"
-- OUTPUT --
# err: errSetScope: variable g.x not in scope
# err: errSetScope: var `$g.x` does not exist in this scope