Skip to content

Commit d881eee

Browse files
committed
Change try_define_child to return a Result instead of an Option
1 parent 16e7ff1 commit d881eee

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/librustc_resolve/build_reduced_graph.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,16 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
100100
fn try_define<T>(&self, parent: Module<'b>, name: Name, ns: Namespace, def: T)
101101
where T: ToNameBinding<'b>
102102
{
103-
parent.try_define_child(name, ns, self.new_name_binding(def.to_name_binding()));
103+
let _ = parent.try_define_child(name, ns, self.new_name_binding(def.to_name_binding()));
104104
}
105105

106106
/// Defines `name` in namespace `ns` of module `parent` to be `def` if it is not yet defined;
107107
/// otherwise, reports an error.
108108
fn define<T: ToNameBinding<'b>>(&self, parent: Module<'b>, name: Name, ns: Namespace, def: T) {
109109
let binding = self.new_name_binding(def.to_name_binding());
110110
let old_binding = match parent.try_define_child(name, ns, binding) {
111-
Some(old_binding) => old_binding,
112-
None => return,
111+
Ok(()) => return,
112+
Err(old_binding) => old_binding,
113113
};
114114

115115
let span = binding.span.unwrap_or(DUMMY_SP);

src/librustc_resolve/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -870,10 +870,10 @@ impl<'a> ModuleS<'a> {
870870
// If the name is not yet defined, define the name and return None.
871871
// Otherwise, return the existing definition.
872872
fn try_define_child(&self, name: Name, ns: Namespace, binding: &'a NameBinding<'a>)
873-
-> Option<&'a NameBinding<'a>> {
873+
-> Result<(), &'a NameBinding<'a>> {
874874
match self.children.borrow_mut().entry((name, ns)) {
875-
hash_map::Entry::Vacant(entry) => { entry.insert(binding); None }
876-
hash_map::Entry::Occupied(entry) => { Some(entry.get()) },
875+
hash_map::Entry::Vacant(entry) => { entry.insert(binding); Ok(()) }
876+
hash_map::Entry::Occupied(entry) => { Err(entry.get()) },
877877
}
878878
}
879879

0 commit comments

Comments
 (0)