]> git.lizzy.rs Git - rust.git/commitdiff
Add span for bad doc comment
authorYuki Okushi <huyuumi.dev@gmail.com>
Sun, 20 Jan 2019 19:52:16 +0000 (04:52 +0900)
committerYuki Okushi <huyuumi.dev@gmail.com>
Sun, 20 Jan 2019 19:52:16 +0000 (04:52 +0900)
src/libsyntax/parse/parser.rs

index 7e15b23127655ee5883451685b3754e5a5aeeb3c..3195435bba5ad3012107adf797d1b743dfcb1c20 100644 (file)
@@ -4483,13 +4483,17 @@ fn parse_name_and_ty(&mut self,
     }
 
     /// Emit an expected item after attributes error.
-    fn expected_item_err(&self, attrs: &[Attribute]) {
+    fn expected_item_err(&mut self, attrs: &[Attribute]) -> PResult<'a,  ()> {
         let message = match attrs.last() {
             Some(&Attribute { is_sugared_doc: true, .. }) => "expected item after doc comment",
             _ => "expected item after attributes",
         };
 
-        self.span_err(self.prev_span, message);
+        let mut err = self.diagnostic().struct_span_err(self.prev_span, message);
+        if attrs.last().unwrap().is_sugared_doc {
+            err.span_label(self.prev_span, "this doc comment doesn't document anything");
+        }
+        Err(err)
     }
 
     /// Parse a statement. This stops just before trailing semicolons on everything but items.
@@ -7636,7 +7640,7 @@ fn parse_item_implementation(
             }
             None => {
                 if !attrs.is_empty()  {
-                    self.expected_item_err(&attrs);
+                    self.expected_item_err(&attrs)?;
                 }
 
                 self.unexpected()
@@ -7699,7 +7703,7 @@ fn parse_macro_use_or_failure(
         }
 
         if !attributes_allowed && !attrs.is_empty() {
-            self.expected_item_err(&attrs);
+            self.expected_item_err(&attrs)?;
         }
         Ok(None)
     }