about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-04-27 01:13:15 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-04-27 01:13:15 +0000
commitc9d8e1493c840a9901f7caecda26de1a8a48f754 (patch)
tree1be6bd63bc2a247f0cbe3b2e149c580b1884683e
parentc46164b626925083519bfd48733fad48cc1ddec5 (diff)
downloadrust-c9d8e1493c840a9901f7caecda26de1a8a48f754.tar.gz
rust-c9d8e1493c840a9901f7caecda26de1a8a48f754.zip
Refactor field `span` of `NameBinding` from `Option<Span>` to `Span`.
-rw-r--r--src/librustc_resolve/build_reduced_graph.rs4
-rw-r--r--src/librustc_resolve/lib.rs15
-rw-r--r--src/librustc_resolve/resolve_imports.rs8
3 files changed, 13 insertions, 14 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs
index 6dfd3e00be8..6a8779d79db 100644
--- a/src/librustc_resolve/build_reduced_graph.rs
+++ b/src/librustc_resolve/build_reduced_graph.rs
@@ -48,13 +48,13 @@ trait ToNameBinding<'a> {
 
 impl<'a> ToNameBinding<'a> for (Module<'a>, Span, ty::Visibility) {
     fn to_name_binding(self) -> NameBinding<'a> {
-        NameBinding { kind: NameBindingKind::Module(self.0), span: Some(self.1), vis: self.2 }
+        NameBinding { kind: NameBindingKind::Module(self.0), span: self.1, vis: self.2 }
     }
 }
 
 impl<'a> ToNameBinding<'a> for (Def, Span, ty::Visibility) {
     fn to_name_binding(self) -> NameBinding<'a> {
-        NameBinding { kind: NameBindingKind::Def(self.0), span: Some(self.1), vis: self.2 }
+        NameBinding { kind: NameBindingKind::Def(self.0), span: self.1, vis: self.2 }
     }
 }
 
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index 16954f6bc97..a5831186c87 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -349,7 +349,7 @@ fn resolve_struct_error<'b, 'a: 'b, 'tcx: 'a>(resolver: &'b Resolver<'a, 'tcx>,
             if let Some(binding) = resolver.current_module
                                            .resolve_name_in_lexical_scope(name, ValueNS) {
                 if binding.is_import() {
-                    err.span_note(binding.span.unwrap(), "constant imported here");
+                    err.span_note(binding.span, "constant imported here");
                 }
             }
             err
@@ -900,7 +900,7 @@ impl<'a> fmt::Debug for ModuleS<'a> {
 #[derive(Clone, Debug)]
 pub struct NameBinding<'a> {
     kind: NameBindingKind<'a>,
-    span: Option<Span>,
+    span: Span,
     vis: ty::Visibility,
 }
 
@@ -3293,7 +3293,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
                             identifier: ident,
                             parameters: params,
                         };
-                        let span = name_binding.span.unwrap_or(syntax::codemap::DUMMY_SP);
+                        let span = name_binding.span;
                         let mut segms = path_segments.clone();
                         segms.push(segment);
                         let segms = HirVec::from_vec(segms);
@@ -3447,7 +3447,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
                        binding: &NameBinding,
                        old_binding: &NameBinding) {
         // Error on the second of two conflicting names
-        if old_binding.span.unwrap().lo > binding.span.unwrap().lo {
+        if old_binding.span.lo > binding.span.lo {
             return self.report_conflict(parent, name, ns, old_binding, binding);
         }
 
@@ -3463,7 +3463,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
             false => ("defined", "definition"),
         };
 
-        let span = binding.span.unwrap();
+        let span = binding.span;
         let msg = {
             let kind = match (ns, old_binding.module()) {
                 (ValueNS, _) => "a value",
@@ -3488,9 +3488,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
             },
         };
 
-        let span = old_binding.span.unwrap();
-        if span != codemap::DUMMY_SP {
-            err.span_note(span, &format!("previous {} of `{}` here", noun, name));
+        if old_binding.span != codemap::DUMMY_SP {
+            err.span_note(old_binding.span, &format!("previous {} of `{}` here", noun, name));
         }
         err.emit();
     }
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index f335f145a10..4a87ffe820d 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -26,7 +26,7 @@ use rustc::hir::def::*;
 
 use syntax::ast::{NodeId, Name};
 use syntax::attr::AttrMetaMethods;
-use syntax::codemap::Span;
+use syntax::codemap::{Span, DUMMY_SP};
 use syntax::util::lev_distance::find_best_match_for_name;
 
 use std::cell::{Cell, RefCell};
@@ -76,7 +76,7 @@ impl<'a> ImportDirective<'a> {
                 directive: self,
                 privacy_error: privacy_error,
             },
-            span: Some(self.span),
+            span: self.span,
             vis: self.vis,
         }
     }
@@ -412,7 +412,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
         if let SingleImport { target, .. } = e.import_directive.subclass {
             let dummy_binding = self.resolver.arenas.alloc_name_binding(NameBinding {
                 kind: NameBindingKind::Def(Def::Err),
-                span: None,
+                span: DUMMY_SP,
                 vis: ty::Visibility::Public,
             });
             let dummy_binding = e.import_directive.import(dummy_binding, None);
@@ -696,7 +696,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
                                        (error E0364), consider declaring its enum as `pub`",
                                       name);
                     let lint = lint::builtin::PRIVATE_IN_PUBLIC;
-                    self.resolver.session.add_lint(lint, directive.id, binding.span.unwrap(), msg);
+                    self.resolver.session.add_lint(lint, directive.id, binding.span, msg);
                 }
             }
         }