about summary refs log tree commit diff
path: root/users/tazjin/rlox/src/interpreter.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-01-16T12·11+0300
committertazjin <mail@tazj.in>2021-01-16T13·46+0000
commit29335a8b63ba62bd83019eb193baba7c5b656da3 (patch)
tree2018e86c92ab702ac2549da399bd707769ccd0c7 /users/tazjin/rlox/src/interpreter.rs
parentf472c824277d80134ce9e55c0a2ce1cb98201134 (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.rs4
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| {