diff --git a/src/compile.rs b/src/compile.rs index a13d361..74deb2d 100644 --- a/src/compile.rs +++ b/src/compile.rs @@ -1877,7 +1877,9 @@ impl Compiler { fn lookup_name(&self, name: &str) -> &Symbol { // println!("Looking up {:?}", name); let scope = self.scope_stack.last().unwrap(); - scope.lookup(name).unwrap() + scope.lookup(name).expect( + "The symbol must be present in the symbol table, even when it is undefined in python.", + ) } // Low level helper functions: diff --git a/src/symboltable.rs b/src/symboltable.rs index c1db24b..6dc9c4c 100644 --- a/src/symboltable.rs +++ b/src/symboltable.rs @@ -244,13 +244,11 @@ impl SymbolTableBuilder { } => { self.scan_expressions(decorator_list)?; self.register_name(name, SymbolRole::Assigned)?; - - self.enter_function(args)?; - - self.scan_statements(body)?; if let Some(expression) = returns { self.scan_expression(expression)?; } + self.enter_function(args)?; + self.scan_statements(body)?; self.leave_scope(); } ClassDef {