diff --git a/schala-lang/language/src/schala.rs b/schala-lang/language/src/schala.rs index 16ee7bc..4eaefdf 100644 --- a/schala-lang/language/src/schala.rs +++ b/schala-lang/language/src/schala.rs @@ -21,6 +21,7 @@ pub struct Schala { source_reference: SourceReference, state: eval::State<'static>, symbol_table: Rc>, + resolver: crate::scope_resolution::ScopeResolver<'static>, type_context: typechecking::TypeContext<'static>, active_parser: Option, } @@ -40,6 +41,7 @@ impl Schala { Schala { source_reference: SourceReference::new(), symbol_table: symbols.clone(), + resolver: crate::scope_resolution::ScopeResolver::new(symbols.clone()), state: eval::State::new(symbols), type_context: typechecking::TypeContext::new(), active_parser: None, @@ -156,8 +158,7 @@ fn symbol_table(input: ast::AST, handle: &mut Schala, comp: Option<&mut PassDebu } fn scope_resolution(mut input: ast::AST, handle: &mut Schala, _com: Option<&mut PassDebugArtifact>) -> Result { - let mut resolver = crate::scope_resolution::ScopeResolver::new(handle.symbol_table.clone()); - let () = resolver.resolve(&mut input)?; + let () = handle.resolver.resolve(&mut input)?; Ok(input) }