From d881eee608bcfcd89643cb126c9f3aefc6a80661 Mon Sep 17 00:00:00 2001 From: Jeffrey Seyfried Date: Mon, 8 Feb 2016 00:54:31 +0000 Subject: [PATCH] Change try_define_child to return a Result instead of an Option --- src/librustc_resolve/build_reduced_graph.rs | 6 +++--- src/librustc_resolve/lib.rs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index d311afb23976d..775ed34ab073c 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -100,7 +100,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { fn try_define(&self, parent: Module<'b>, name: Name, ns: Namespace, def: T) where T: ToNameBinding<'b> { - parent.try_define_child(name, ns, self.new_name_binding(def.to_name_binding())); + let _ = parent.try_define_child(name, ns, self.new_name_binding(def.to_name_binding())); } /// Defines `name` in namespace `ns` of module `parent` to be `def` if it is not yet defined; @@ -108,8 +108,8 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { fn define>(&self, parent: Module<'b>, name: Name, ns: Namespace, def: T) { let binding = self.new_name_binding(def.to_name_binding()); let old_binding = match parent.try_define_child(name, ns, binding) { - Some(old_binding) => old_binding, - None => return, + Ok(()) => return, + Err(old_binding) => old_binding, }; let span = binding.span.unwrap_or(DUMMY_SP); diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 0325bcc24c499..47a811bc8ab89 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -870,10 +870,10 @@ impl<'a> ModuleS<'a> { // If the name is not yet defined, define the name and return None. // Otherwise, return the existing definition. fn try_define_child(&self, name: Name, ns: Namespace, binding: &'a NameBinding<'a>) - -> Option<&'a NameBinding<'a>> { + -> Result<(), &'a NameBinding<'a>> { match self.children.borrow_mut().entry((name, ns)) { - hash_map::Entry::Vacant(entry) => { entry.insert(binding); None } - hash_map::Entry::Occupied(entry) => { Some(entry.get()) }, + hash_map::Entry::Vacant(entry) => { entry.insert(binding); Ok(()) } + hash_map::Entry::Occupied(entry) => { Err(entry.get()) }, } }