From 9988970e81ab877f8cba0bf0d0cc6df7aed52fb7 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Sat, 21 Dec 2013 14:20:57 -0800 Subject: [PATCH] librustc: De-`@mut` `NameBindings` --- src/librustc/middle/resolve.rs | 50 +++++++++++++++------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 915e8e310d27..b023f89ab71a 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -113,7 +113,7 @@ enum NamespaceResult { UnboundResult, /// Means that resolve has determined that the name is bound in the Module /// argument, and specified by the NameBindings argument. - BoundResult(@Module, @mut NameBindings) + BoundResult(@Module, @NameBindings) } impl NamespaceResult { @@ -328,13 +328,11 @@ impl ImportDirective { /// The item that an import resolves to. struct Target { target_module: @Module, - bindings: @mut NameBindings, + bindings: @NameBindings, } impl Target { - fn new(target_module: @Module, - bindings: @mut NameBindings) - -> Target { + fn new(target_module: @Module, bindings: @NameBindings) -> Target { Target { target_module: target_module, bindings: bindings @@ -420,7 +418,7 @@ struct Module { kind: Cell, is_public: bool, - children: @mut HashMap, + children: @mut HashMap, imports: @mut ~[@ImportDirective], // The external module children of this node that were declared with @@ -520,7 +518,7 @@ enum TraitReferenceType { impl NameBindings { /// Creates a new module in this set of name bindings. - fn define_module(&mut self, + fn define_module(&self, parent_link: ParentLink, def_id: Option, kind: ModuleKind, @@ -551,7 +549,7 @@ impl NameBindings { } /// Sets the kind of the module, creating a new one if necessary. - fn set_module_kind(&mut self, + fn set_module_kind(&self, parent_link: ParentLink, def_id: Option, kind: ModuleKind, @@ -591,7 +589,7 @@ impl NameBindings { } /// Records a type definition. - fn define_type(&mut self, def: Def, sp: Span, is_public: bool) { + fn define_type(&self, def: Def, sp: Span, is_public: bool) { // Merges the type with the existing type def or creates a new one. match self.type_def.get() { None => { @@ -614,7 +612,7 @@ impl NameBindings { } /// Records a value definition. - fn define_value(&mut self, def: Def, sp: Span, is_public: bool) { + fn define_value(&self, def: Def, sp: Span, is_public: bool) { self.value_def.set(Some(ValueNsDef { def: def, value_span: Some(sp), @@ -635,7 +633,7 @@ impl NameBindings { * Returns the module node. Fails if this node does not have a module * definition. */ - fn get_module(&mut self) -> @Module { + fn get_module(&self) -> @Module { match self.get_module_if_available() { None => { fail!("get_module called on a node with no module \ @@ -774,7 +772,7 @@ fn namespace_error_to_str(ns: NamespaceError) -> &'static str { fn Resolver(session: Session, lang_items: LanguageItems, crate_span: Span) -> Resolver { - let graph_root = @mut NameBindings(); + let graph_root = @NameBindings(); graph_root.define_module(NoParentLink, Some(DefId { crate: 0, node: 0 }), @@ -834,7 +832,7 @@ struct Resolver { intr: @ident_interner, - graph_root: @mut NameBindings, + graph_root: @NameBindings, method_map: @mut HashMap>, structs: HashSet, @@ -985,7 +983,7 @@ impl Resolver { duplicate_checking_mode: DuplicateCheckingMode, // For printing errors sp: Span) - -> (@mut NameBindings, ReducedGraphParent) { + -> (@NameBindings, ReducedGraphParent) { // If this is the immediate descendant of a module, then we add the // child name directly. Otherwise, we create or reuse an anonymous // module and add the child to that. @@ -1001,7 +999,7 @@ impl Resolver { let new_parent = ModuleReducedGraphParent(module_); match module_.children.find(&name.name) { None => { - let child = @mut NameBindings(); + let child = @NameBindings(); module_.children.insert(name.name, child); return (child, new_parent); } @@ -1591,7 +1589,7 @@ impl Resolver { fn handle_external_def(&mut self, def: Def, vis: visibility, - child_name_bindings: @mut NameBindings, + child_name_bindings: @NameBindings, final_ident: &str, ident: Ident, new_parent: ReducedGraphParent) { @@ -2215,8 +2213,7 @@ impl Resolver { return resolution_result; } - fn create_name_bindings_from_module(module: @Module) - -> NameBindings { + fn create_name_bindings_from_module(module: @Module) -> NameBindings { NameBindings { type_def: RefCell::new(Some(TypeNsDef { is_public: false, @@ -2372,7 +2369,7 @@ impl Resolver { None => {} // Continue. Some(module) => { let name_bindings = - @mut Resolver::create_name_bindings_from_module( + @Resolver::create_name_bindings_from_module( module); type_result = BoundResult(containing_module, name_bindings); @@ -2535,8 +2532,7 @@ impl Resolver { } } - let merge_import_resolution = |name, - name_bindings: @mut NameBindings| { + let merge_import_resolution = |name, name_bindings: @NameBindings| { let dest_import_resolution; match module_.import_resolutions.find(&name) { None => { @@ -2585,7 +2581,7 @@ impl Resolver { containing_module.external_module_children.borrow(); for (&name, module) in external_module_children.get().iter() { let name_bindings = - @mut Resolver::create_name_bindings_from_module(*module); + @Resolver::create_name_bindings_from_module(*module); merge_import_resolution(name, name_bindings); } } @@ -2889,8 +2885,7 @@ impl Resolver { None => {} Some(module) => { let name_bindings = - @mut Resolver::create_name_bindings_from_module( - module); + @Resolver::create_name_bindings_from_module(module); debug!("lower name bindings succeeded"); return Success((Target::new(module_, name_bindings), false)); } @@ -2975,7 +2970,7 @@ impl Resolver { module_, name, TypeNS, DontSearchThroughModules); match resolve_result { Success((target, _)) => { - let bindings = &mut *target.bindings; + let bindings = &*target.bindings; match bindings.type_def.get() { Some(type_def) => { match type_def.module_def { @@ -3166,8 +3161,7 @@ impl Resolver { None => {} Some(module) => { let name_bindings = - @mut Resolver::create_name_bindings_from_module( - module); + @Resolver::create_name_bindings_from_module(module); return Success((Target::new(module_, name_bindings), false)); } } @@ -3290,7 +3284,7 @@ impl Resolver { fn add_exports_of_namebindings(&mut self, exports2: &mut ~[Export2], name: Name, - namebindings: @mut NameBindings, + namebindings: @NameBindings, ns: Namespace, reexport: bool) { match namebindings.def_for_namespace(ns) {