mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-27 22:34:14 +00:00
Rollup merge of #99903 - gimbles:pub, r=davidtwco
Add diagnostic when using public instead of pub Forwarding from https://github.com/rust-lang/rust/pull/99706 I accidentally broke something(??) in git and the commits in that PR are absolutely not what I did in that branch Anyways, this is the PR for this now. Adding tests again in a minute. cc `@davidtwco`
This commit is contained in:
commit
df2cf97830
@ -601,6 +601,17 @@ impl<'a> Parser<'a> {
|
||||
self.last_unexpected_token_span = Some(self.token.span);
|
||||
let mut err = self.struct_span_err(self.token.span, &msg_exp);
|
||||
|
||||
if let TokenKind::Ident(symbol, _) = &self.prev_token.kind {
|
||||
if symbol.as_str() == "public" {
|
||||
err.span_suggestion_short(
|
||||
self.prev_token.span,
|
||||
"write `pub` instead of `public` to make the item public",
|
||||
"pub",
|
||||
appl,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Add suggestion for a missing closing angle bracket if '>' is included in expected_tokens
|
||||
// there are unclosed angle brackets
|
||||
if self.unmatched_angle_bracket_count > 0
|
||||
|
8
src/test/ui/parser/public-instead-of-pub.fixed
Normal file
8
src/test/ui/parser/public-instead-of-pub.fixed
Normal file
@ -0,0 +1,8 @@
|
||||
// Checks what happens when `public` is used instead of the correct, `pub`
|
||||
// edition:2018
|
||||
// run-rustfix
|
||||
pub struct X;
|
||||
//~^ ERROR expected one of `!` or `::`, found keyword `struct`
|
||||
//~^^ HELP write `pub` instead of `public` to make the item public
|
||||
|
||||
fn main() {}
|
8
src/test/ui/parser/public-instead-of-pub.rs
Normal file
8
src/test/ui/parser/public-instead-of-pub.rs
Normal file
@ -0,0 +1,8 @@
|
||||
// Checks what happens when `public` is used instead of the correct, `pub`
|
||||
// edition:2018
|
||||
// run-rustfix
|
||||
public struct X;
|
||||
//~^ ERROR expected one of `!` or `::`, found keyword `struct`
|
||||
//~^^ HELP write `pub` instead of `public` to make the item public
|
||||
|
||||
fn main() {}
|
13
src/test/ui/parser/public-instead-of-pub.stderr
Normal file
13
src/test/ui/parser/public-instead-of-pub.stderr
Normal file
@ -0,0 +1,13 @@
|
||||
error: expected one of `!` or `::`, found keyword `struct`
|
||||
--> $DIR/public-instead-of-pub.rs:4:8
|
||||
|
|
||||
LL | public struct X;
|
||||
| ^^^^^^ expected one of `!` or `::`
|
||||
|
|
||||
help: write `pub` instead of `public` to make the item public
|
||||
|
|
||||
LL | pub struct X;
|
||||
| ~~~
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
Reference in New Issue
Block a user