diff options
author | Vincent Ambo <mail@tazj.in> | 2021-01-16T12·11+0300 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2021-01-16T13·46+0000 |
commit | 29335a8b63ba62bd83019eb193baba7c5b656da3 (patch) | |
tree | 2018e86c92ab702ac2549da399bd707769ccd0c7 /users/tazjin/rlox/src/interpreter.rs | |
parent | f472c824277d80134ce9e55c0a2ce1cb98201134 (diff) |
feat(tazjin/rlox): Implement variable depth resolver r/2113
Implements the first part of the resolver from https://craftinginterpreters.com/resolving-and-binding.html This is wired up to the execution paths in main, but not yet in the tests. The resolved depth is also not actually used for variable lookups (yet). Change-Id: I3a8615252b7b9b12d5a290c5ddf85988f61b9184 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2403 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
Diffstat (limited to 'users/tazjin/rlox/src/interpreter.rs')
-rw-r--r-- | users/tazjin/rlox/src/interpreter.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/users/tazjin/rlox/src/interpreter.rs b/users/tazjin/rlox/src/interpreter.rs index a1d246ba2eb2..6c61288d5a7d 100644 --- a/users/tazjin/rlox/src/interpreter.rs +++ b/users/tazjin/rlox/src/interpreter.rs @@ -107,13 +107,13 @@ impl Environment { } fn get(&self, name: &parser::Variable) -> Result<Value, Error> { - let ident = identifier_str(&name.0)?; + let ident = identifier_str(&name.name)?; self.values .get(ident) .map(Clone::clone) .ok_or_else(|| Error { - line: name.0.line, + line: name.name.line, kind: ErrorKind::UndefinedVariable(ident.into()), }) .or_else(|err| { |