Skip to content

Add FnContext in parser for diagnostic - #145378

Merged
bors merged 2 commits into
rust-lang:masterfrom
xizheyin:144968
Aug 15, 2025
Merged

Add FnContext in parser for diagnostic#145378
bors merged 2 commits into
rust-lang:masterfrom
xizheyin:144968

Conversation

@xizheyin

@xizheyinxizheyin commented Aug 14, 2025

Copy link
Copy Markdown
Member

Fixes#144968

Inspired by #144968 (comment), I implemented FnContext to indicate whether a function should have a self parameter, for example, whether the function is a trait method, whether it is in an impl block. And I removed the outdated note.

I made two commits to show the difference.

cc @estebank@djc

r? compiler

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 14, 2025
djc
djc approved these changes Aug 14, 2025
Comment threadcompiler/rustc_parse/src/parser/diagnostics.rs
Comment threadcompiler/rustc_parse/src/parser/diagnostics.rs
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
@xizheyin
xizheyin marked this pull request as draft August 14, 2025 13:46
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 14, 2025

@xizheyinxizheyin left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As conclusion, when it encounter

  • bare function: remove self suggestion and remove rfc note.
  • impl method: remove rfc note.
  • Trait method: No change.

Comment threadcompiler/rustc_parse/src/parser/item.rs
Comment threadcompiler/rustc_parse/src/parser/diagnostics.rs
Comment threadtests/ui/parser/suggest-self-in-bare-function.rs
@xizheyin
xizheyin marked this pull request as ready for review August 14, 2025 14:09
@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 14, 2025
@davidtwco

Copy link
Copy Markdown
Member

@bors r+ rollup

@bors

bors commented Aug 14, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 3ce555f has been approved by davidtwco

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 14, 2025
Zalathar added a commit to Zalathar/rust that referenced this pull request Aug 15, 2025
Add `FnContext` in parser for diagnostic
Fixesrust-lang#144968
Inspired by rust-lang#144968 (comment), I implemented `FnContext` to indicate whether a function should have a self parameter, for example, whether the function is a trait method, whether it is in an impl block. And I removed the outdated note.
I made two commits to show the difference.
cc `@estebank` `@djc`
r? compiler
@ZalatharZalathar mentioned this pull request Aug 15, 2025
bors added a commit that referenced this pull request Aug 15, 2025
Rollup of 22 pull requests
Successful merges:
- #118087 (Add Ref/RefMut try_map method)
- #122661 (Change the desugaring of `assert!` for better error output)
- #140740 (Add `-Zindirect-branch-cs-prefix`)
- #142640 (Implement autodiff using intrinsics)
- #143075 (compiler: Allow `extern "interrupt" fn() -> !`)
- #144865 (Fix tail calls to `#[track_caller]` functions)
- #144944 (E0793: Clarify that it applies to unions as well)
- #144947 (Fix description of unsigned `checked_exact_div`)
- #145004 (Couple of minor cleanups)
- #145005 (strip prefix of temporary file names when it exceeds filesystem name length limit)
- #145012 (Tail call diagnostics to include lifetime info)
- #145065 (resolve: Introduce `RibKind::Block`)
- #145120 (llvm: Accept new LLVM lifetime format)
- #145189 (Weekly `cargo update`)
- #145235 (Minor `[const]` tweaks)
- #145275 (fix(compiler/rustc_codegen_llvm): apply `target-cpu` attribute)
- #145322 (Resolve the prelude import in `build_reduced_graph`)
- #145331 (Make std use the edition 2024 prelude)
- #145369 (Do not ICE on private type in field of unresolved struct)
- #145378 (Add `FnContext` in parser for diagnostic)
- #145389 ([rustdoc] Revert "rustdoc search: prefer stable items in search results")
- #145392 (coverage: Remove intermediate data structures from mapping creation)
r? `@ghost`
`@rustbot` modify labels: rollup
@ZalatharZalathar mentioned this pull request Aug 15, 2025
bors added a commit that referenced this pull request Aug 15, 2025
Rollup of 21 pull requests
Successful merges:
- #118087 (Add Ref/RefMut try_map method)
- #122661 (Change the desugaring of `assert!` for better error output)
- #142640 (Implement autodiff using intrinsics)
- #143075 (compiler: Allow `extern "interrupt" fn() -> !`)
- #144865 (Fix tail calls to `#[track_caller]` functions)
- #144944 (E0793: Clarify that it applies to unions as well)
- #144947 (Fix description of unsigned `checked_exact_div`)
- #145004 (Couple of minor cleanups)
- #145005 (strip prefix of temporary file names when it exceeds filesystem name length limit)
- #145012 (Tail call diagnostics to include lifetime info)
- #145065 (resolve: Introduce `RibKind::Block`)
- #145120 (llvm: Accept new LLVM lifetime format)
- #145189 (Weekly `cargo update`)
- #145235 (Minor `[const]` tweaks)
- #145275 (fix(compiler/rustc_codegen_llvm): apply `target-cpu` attribute)
- #145322 (Resolve the prelude import in `build_reduced_graph`)
- #145331 (Make std use the edition 2024 prelude)
- #145369 (Do not ICE on private type in field of unresolved struct)
- #145378 (Add `FnContext` in parser for diagnostic)
- #145389 ([rustdoc] Revert "rustdoc search: prefer stable items in search results")
- #145392 (coverage: Remove intermediate data structures from mapping creation)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit dc047f1 into rust-lang:masterAug 15, 2025
10 checks passed
@rustbotrustbot added this to the 1.91.0 milestone Aug 15, 2025
rust-timer added a commit that referenced this pull request Aug 15, 2025
Rollup merge of #145378 - xizheyin:144968, r=davidtwco
Add `FnContext` in parser for diagnostic
Fixes#144968
Inspired by #144968 (comment), I implemented `FnContext` to indicate whether a function should have a self parameter, for example, whether the function is a trait method, whether it is in an impl block. And I removed the outdated note.
I made two commits to show the difference.
cc ``@estebank`` ``@djc``
r? compiler
github-actionsBot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Aug 18, 2025
Rollup of 21 pull requests
Successful merges:
- rust-lang/rust#118087 (Add Ref/RefMut try_map method)
- rust-lang/rust#122661 (Change the desugaring of `assert!` for better error output)
- rust-lang/rust#142640 (Implement autodiff using intrinsics)
- rust-lang/rust#143075 (compiler: Allow `extern "interrupt" fn() -> !`)
- rust-lang/rust#144865 (Fix tail calls to `#[track_caller]` functions)
- rust-lang/rust#144944 (E0793: Clarify that it applies to unions as well)
- rust-lang/rust#144947 (Fix description of unsigned `checked_exact_div`)
- rust-lang/rust#145004 (Couple of minor cleanups)
- rust-lang/rust#145005 (strip prefix of temporary file names when it exceeds filesystem name length limit)
- rust-lang/rust#145012 (Tail call diagnostics to include lifetime info)
- rust-lang/rust#145065 (resolve: Introduce `RibKind::Block`)
- rust-lang/rust#145120 (llvm: Accept new LLVM lifetime format)
- rust-lang/rust#145189 (Weekly `cargo update`)
- rust-lang/rust#145235 (Minor `[const]` tweaks)
- rust-lang/rust#145275 (fix(compiler/rustc_codegen_llvm): apply `target-cpu` attribute)
- rust-lang/rust#145322 (Resolve the prelude import in `build_reduced_graph`)
- rust-lang/rust#145331 (Make std use the edition 2024 prelude)
- rust-lang/rust#145369 (Do not ICE on private type in field of unresolved struct)
- rust-lang/rust#145378 (Add `FnContext` in parser for diagnostic)
- rust-lang/rust#145389 ([rustdoc] Revert "rustdoc search: prefer stable items in search results")
- rust-lang/rust#145392 (coverage: Remove intermediate data structures from mapping creation)
r? `@ghost`
`@rustbot` modify labels: rollup
Kobzol pushed a commit to Kobzol/rustc_codegen_gcc that referenced this pull request Dec 21, 2025
Rollup of 21 pull requests
Successful merges:
- rust-lang/rust#118087 (Add Ref/RefMut try_map method)
- rust-lang/rust#122661 (Change the desugaring of `assert!` for better error output)
- rust-lang/rust#142640 (Implement autodiff using intrinsics)
- rust-lang/rust#143075 (compiler: Allow `extern "interrupt" fn() -> !`)
- rust-lang/rust#144865 (Fix tail calls to `#[track_caller]` functions)
- rust-lang/rust#144944 (E0793: Clarify that it applies to unions as well)
- rust-lang/rust#144947 (Fix description of unsigned `checked_exact_div`)
- rust-lang/rust#145004 (Couple of minor cleanups)
- rust-lang/rust#145005 (strip prefix of temporary file names when it exceeds filesystem name length limit)
- rust-lang/rust#145012 (Tail call diagnostics to include lifetime info)
- rust-lang/rust#145065 (resolve: Introduce `RibKind::Block`)
- rust-lang/rust#145120 (llvm: Accept new LLVM lifetime format)
- rust-lang/rust#145189 (Weekly `cargo update`)
- rust-lang/rust#145235 (Minor `[const]` tweaks)
- rust-lang/rust#145275 (fix(compiler/rustc_codegen_llvm): apply `target-cpu` attribute)
- rust-lang/rust#145322 (Resolve the prelude import in `build_reduced_graph`)
- rust-lang/rust#145331 (Make std use the edition 2024 prelude)
- rust-lang/rust#145369 (Do not ICE on private type in field of unresolved struct)
- rust-lang/rust#145378 (Add `FnContext` in parser for diagnostic)
- rust-lang/rust#145389 ([rustdoc] Revert "rustdoc search: prefer stable items in search results")
- rust-lang/rust#145392 (coverage: Remove intermediate data structures from mapping creation)
r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

when a fn is missing a parameter type, the help advice could be improved

5 participants

@xizheyin@davidtwco@bors@djc@rustbot