]> git.lizzy.rs Git - rust.git/commitdiff
save-analysis: fix a couple of span bugs
authorNick Cameron <ncameron@mozilla.com>
Mon, 15 Jun 2015 05:58:10 +0000 (17:58 +1200)
committerNick Cameron <ncameron@mozilla.com>
Mon, 15 Jun 2015 06:10:49 +0000 (18:10 +1200)
src/librustc_trans/save/mod.rs

index 380d6b0ee6578a4264eda8fe48cf6c9601194bba..3ea628704ebc6790beffacd37993412e5927ff35 100644 (file)
@@ -255,16 +255,17 @@ pub fn get_item_data(&self, item: &ast::Item) -> Data {
                 match typ.node {
                     // Common case impl for a struct or something basic.
                     ast::TyPath(None, ref path) => {
-                        sub_span = self.span_utils.sub_span_for_type_name(path.span);
+                        sub_span = self.span_utils.sub_span_for_type_name(path.span).unwrap();
                         type_data = self.lookup_ref_id(typ.id).map(|id| TypeRefData {
-                            span: sub_span.unwrap(),
+                            span: sub_span,
                             scope: parent,
                             ref_id: id,
                         });
                     },
                     _ => {
                         // Less useful case, impl for a compound type.
-                        sub_span = self.span_utils.sub_span_for_type_name(typ.span);
+                        let span = typ.span;
+                        sub_span = self.span_utils.sub_span_for_type_name(span).unwrap_or(span);
                     }
                 }
 
@@ -273,7 +274,7 @@ pub fn get_item_data(&self, item: &ast::Item) -> Data {
 
                 Data::ImplData(ImplData {
                     id: item.id,
-                    span: sub_span.unwrap(),
+                    span: sub_span,
                     scope: parent,
                     trait_ref: trait_data,
                     self_ref: type_data,
@@ -320,9 +321,10 @@ pub fn get_trait_ref_data(&self,
                               parent: NodeId)
                               -> Option<TypeRefData> {
         self.lookup_ref_id(trait_ref.ref_id).map(|def_id| {
-            let sub_span = self.span_utils.sub_span_for_type_name(trait_ref.path.span);
+            let span = trait_ref.path.span;
+            let sub_span = self.span_utils.sub_span_for_type_name(span).unwrap_or(span);
             TypeRefData {
-                span: sub_span.unwrap(),
+                span: sub_span,
                 scope: parent,
                 ref_id: def_id,
             }