From eb3487907c4378af039ad6e77c88684cc95e5f0f Mon Sep 17 00:00:00 2001 From: Jacob Johannsen Date: Sat, 12 Oct 2024 01:51:03 +0200 Subject: [PATCH] Merge finalized --- sway-core/src/lib.rs | 2 +- sway-core/src/semantic_analysis/module.rs | 2 +- .../src/semantic_analysis/type_check_context.rs | 17 ++++++++--------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/sway-core/src/lib.rs b/sway-core/src/lib.rs index 2a12b8b0022..6f2ae6e1f5c 100644 --- a/sway-core/src/lib.rs +++ b/sway-core/src/lib.rs @@ -571,7 +571,7 @@ pub fn parsed_to_ast( let collection_namespace = Namespace::new(handler, engines, initial_namespace.clone(), true)?; // Collect the program symbols. - let collection_ctx = + let mut collection_ctx = ty::TyProgram::collect(handler, engines, parse_program, collection_namespace)?; // TODO: Eliminate this cloning step? diff --git a/sway-core/src/semantic_analysis/module.rs b/sway-core/src/semantic_analysis/module.rs index 67265befc04..f11517d8d90 100644 --- a/sway-core/src/semantic_analysis/module.rs +++ b/sway-core/src/semantic_analysis/module.rs @@ -698,7 +698,7 @@ impl ty::TySubmodule { pub fn type_check( handler: &Handler, - parent_ctx: TypeCheckContext, + mut parent_ctx: TypeCheckContext, engines: &Engines, mod_name: ModName, kind: TreeType, diff --git a/sway-core/src/semantic_analysis/type_check_context.rs b/sway-core/src/semantic_analysis/type_check_context.rs index bbce4f4b9c6..31b65f268b1 100644 --- a/sway-core/src/semantic_analysis/type_check_context.rs +++ b/sway-core/src/semantic_analysis/type_check_context.rs @@ -344,7 +344,7 @@ impl<'a> TypeCheckContext<'a> { /// /// Returns the result of the given `with_submod_ctx` function. pub fn enter_submodule( - mut self, + &mut self, handler: &Handler, mod_name: Ident, visibility: Visibility, @@ -356,8 +356,7 @@ impl<'a> TypeCheckContext<'a> { // We're checking a submodule, so no need to pass through anything other than the // namespace and the engines. let engines = self.engines; - let mut ns = self.namespace_mut(); - ns.enter_submodule( + self.namespace.enter_submodule( handler, engines, mod_name.clone(), @@ -371,16 +370,16 @@ impl<'a> TypeCheckContext<'a> { mod_name, visibility, module_span, - |submod_collection_ctx| { + |submod_collection_ctx| { let submod_ctx = TypeCheckContext::from_namespace( - &mut ns, + &mut self.namespace, submod_collection_ctx, engines, experimental, ); let ret = with_submod_ctx(submod_ctx); - ns.pop_submodule(); - ret + self.namespace.pop_submodule(); + ret }, ) } @@ -1162,7 +1161,7 @@ impl<'a> TypeCheckContext<'a> { let type_engine = self.engines.te(); let _decl_engine = self.engines.de(); - let type_name = self.engines.help_out(type_id).to_string(); +// let type_name = self.engines.help_out(type_id).to_string(); // let problem = type_name == "Bytes" && item_name.as_str() == "len"; // if problem { dbg!(&item_prefix); }; @@ -1266,7 +1265,7 @@ impl<'a> TypeCheckContext<'a> { let decl_engine = self.engines.de(); let type_engine = self.engines.te(); - let type_name = self.engines.help_out(type_id).to_string(); +// let type_name = self.engines.help_out(type_id).to_string(); // let problem = type_name == "Bytes" && method_name.as_str() == "len"; // if problem { // dbg!(&method_prefix);