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,
|
||||
attrs: Vec<Attribute> )
|
||||
-> PResult<'a, StructField> {
|
||||
let mut seen_comma: bool = false;
|
||||
let a_var = self.parse_name_and_ty(lo, vis, attrs)?;
|
||||
if self.token == token::Comma {
|
||||
seen_comma = true;
|
||||
}
|
||||
match self.token {
|
||||
token::Comma => {
|
||||
self.bump();
|
||||
}
|
||||
token::CloseDelim(token::Brace) => {}
|
||||
token::DocComment(_) => {
|
||||
let previous_span = self.prev_span;
|
||||
let mut err = self.span_fatal_err(self.span, Error::UselessDocComment);
|
||||
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();
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
|
|
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