1) Addresses #48636
2) Changed position of help message, incase comma is missing 3) added few missing spaces and handled span_suggestion for vscode 4) updated stderr file
This commit is contained in:
parent
9af69fe232
commit
1bed654053
3 changed files with 46 additions and 1 deletions
|
@ -5758,18 +5758,33 @@ impl<'a> Parser<'a> {
|
||||||
vis: Visibility,
|
vis: Visibility,
|
||||||
attrs: Vec<Attribute> )
|
attrs: Vec<Attribute> )
|
||||||
-> PResult<'a, StructField> {
|
-> PResult<'a, StructField> {
|
||||||
|
let mut seen_comma: bool = false;
|
||||||
let a_var = self.parse_name_and_ty(lo, vis, attrs)?;
|
let a_var = self.parse_name_and_ty(lo, vis, attrs)?;
|
||||||
|
if self.token == token::Comma {
|
||||||
|
seen_comma = true;
|
||||||
|
}
|
||||||
match self.token {
|
match self.token {
|
||||||
token::Comma => {
|
token::Comma => {
|
||||||
self.bump();
|
self.bump();
|
||||||
}
|
}
|
||||||
token::CloseDelim(token::Brace) => {}
|
token::CloseDelim(token::Brace) => {}
|
||||||
token::DocComment(_) => {
|
token::DocComment(_) => {
|
||||||
|
let previous_span = self.prev_span;
|
||||||
let mut err = self.span_fatal_err(self.span, Error::UselessDocComment);
|
let mut err = self.span_fatal_err(self.span, Error::UselessDocComment);
|
||||||
self.bump(); // consume the doc comment
|
self.bump(); // consume the doc comment
|
||||||
if self.eat(&token::Comma) || self.token == token::CloseDelim(token::Brace) {
|
let comma_after_doc_seen = self.eat(&token::Comma);
|
||||||
|
// `seen_comma` is always false, because we are inside doc block
|
||||||
|
// condition is here to make code more readable
|
||||||
|
if seen_comma == false && comma_after_doc_seen == true {
|
||||||
|
seen_comma = true;
|
||||||
|
}
|
||||||
|
if comma_after_doc_seen || self.token == token::CloseDelim(token::Brace) {
|
||||||
err.emit();
|
err.emit();
|
||||||
} else {
|
} else {
|
||||||
|
if seen_comma == false {
|
||||||
|
let sp = self.sess.codemap().next_point(previous_span);
|
||||||
|
err.span_suggestion(sp, "missing comma here", ",".into());
|
||||||
|
}
|
||||||
return Err(err);
|
return Err(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
17
src/test/ui/issue-48636.rs
Normal file
17
src/test/ui/issue-48636.rs
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
// file at the top-level directory of this distribution and at
|
||||||
|
// http://rust-lang.org/COPYRIGHT.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
struct S {
|
||||||
|
x: u8
|
||||||
|
/// The id of the parent core
|
||||||
|
y: u8,
|
||||||
|
}
|
||||||
|
//~^^^ ERROR found a documentation comment that doesn't document anything
|
||||||
|
fn main() {}
|
13
src/test/ui/issue-48636.stderr
Normal file
13
src/test/ui/issue-48636.stderr
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
error[E0585]: found a documentation comment that doesn't document anything
|
||||||
|
--> $DIR/issue-48636.rs:13:5
|
||||||
|
|
|
||||||
|
LL | x: u8
|
||||||
|
| - help: missing comma here: `,`
|
||||||
|
LL | /// The id of the parent core
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= help: doc comments must come before what they document, maybe a comment was intended with `//`?
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0585`.
|
Loading…
Add table
Add a link
Reference in a new issue