Interpreter - Variable assignment

This commit is contained in:
Emmanuel BENOîT 2022-12-31 16:36:29 +01:00
parent 8d6191c7ee
commit f4111577ca
2 changed files with 7 additions and 3 deletions
src/interpreter

View file

@ -28,10 +28,10 @@ impl Environment {
}
/// Assign a value to an existing variable.
pub fn assign(&mut self, name: &Token, value: &Value) -> Result<(), InterpreterError> {
pub fn assign(&mut self, name: &Token, value: Value) -> InterpreterResult {
if self.values.contains_key(&name.lexeme as &str) {
self.values.insert(name.lexeme.clone(), value.clone());
Ok(())
self.values.insert(name.lexeme.clone(), value);
Ok(Value::Nil)
} else {
Err(InterpreterError::new(
name,