fixed bug in resolver

This commit is contained in:
Moritz Gmeiner 2024-09-02 15:35:14 +02:00
commit 76bf3a2a07

View file

@ -120,12 +120,6 @@ impl Resolver {
} }
fn resolve_var(&mut self, name: &str) -> ResolverResult<Expr> { fn resolve_var(&mut self, name: &str) -> ResolverResult<Expr> {
if name == "this" {
return Err(ResolverError::ThisOutsideMethod);
} else if name == "super" {
return Err(ResolverError::SuperOutsideMethod);
}
let mut level = 0; let mut level = 0;
// resolve normal local variable // resolve normal local variable
@ -161,6 +155,12 @@ impl Resolver {
return Ok(Expr::global_variable(name)); return Ok(Expr::global_variable(name));
} }
if name == "this" {
return Err(ResolverError::ThisOutsideMethod);
} else if name == "super" {
return Err(ResolverError::SuperOutsideMethod);
}
let name = name.into(); let name = name.into();
Err(ResolverError::UnresolvableVariable { name }) Err(ResolverError::UnresolvableVariable { name })