Skip to content

Commit

Permalink
Rollup merge of #99903 - gimbles:pub, r=davidtwco
Browse files Browse the repository at this point in the history
Add diagnostic when using public instead of pub

Forwarding from #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`
  • Loading branch information
Dylan-DPC authored Jul 30, 2022
2 parents 79c9474 + d0e881e commit df2cf97
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 0 deletions.
11 changes: 11 additions & 0 deletions compiler/rustc_parse/src/parser/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions src/test/ui/parser/public-instead-of-pub.fixed
Original file line number Diff line number Diff line change
@@ -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 changes: 8 additions & 0 deletions src/test/ui/parser/public-instead-of-pub.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 13 additions & 0 deletions src/test/ui/parser/public-instead-of-pub.stderr
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit df2cf97

Please sign in to comment.