-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
diagnostics: be more careful when suggesting struct fields #116429
Conversation
r? @oli-obk (rustbot has picked a reviewer for you, use r? to override) |
// If the field is from an external crate it must not be `doc(hidden)`. | ||
&& (field.did.is_local() || !self.tcx.is_doc_hidden(field.did)) | ||
// If the field is hygienic it must not originate from a macro expansion. | ||
&& !self.tcx.def_ident_span(field.did).unwrap().normalize_to_macros_2_0().from_expansion() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we check that the span ctxts are the same? Does this affect our ability to suggest hygenic fields from within a macro?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, spans are the field ident and the span of the (expr) hir id passed in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have to check, good points (I had taken inspiration from 1536d72).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe test something like:
#![feature(decl_macro)]
pub macro foo() {
fn test() {
struct Hello { world: () }
let x: Hello = Hello { worl: () };
}
}
foo!();
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, you're right. It's obvious in hindsight. I need to tweak the logic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No worries. We have lots of diagnostics that are subtly wrong due to being overly defensive about macros, resulting them just totally not applying within macros even when they should. Thx for investigating.
6b508b8
to
867cc41
Compare
span: Span, | ||
) -> bool { | ||
// The field must be visible in the containing module. | ||
field.vis.is_accessible_from(self.tcx.parent_module(hir_id), self.tcx) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've taken is_accessible_from(parent_module())
from one of the places I've removed but another one tried to obtain the DefScope
instead of the parent module (via adjust_ident_and_get_scope
). Which one is more correct / general?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the latter, but I doubt it matters. If something is reachable from an item then it's reachable from its parent module, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if there are some edge cases like structs
s defined inside of a fn
instead of a module. Not sure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me
@bors r=compiler-errors |
…, r=compiler-errors Diagnostics: Be more careful when suggesting struct fields Consolidate the various places which filter out struct fields that shouldn't be suggested into a single function. Previously, each of those code paths had slightly different and incomplete metrics for no good reason. Now, there's only a single 'complete' metric (namely `is_field_suggestable`) which also filters out hygienic fields that come from different syntax contexts. Fixes rust-lang#116334.
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#116223 (Fix misuses of a vs an) - rust-lang#116296 (More accurately point to where default return type should go) - rust-lang#116402 (Panic when the global allocator tries to register a TLS destructor) - rust-lang#116429 (Diagnostics: Be more careful when suggesting struct fields) - rust-lang#116431 (Tweak wording of E0562) - rust-lang#116432 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 2)) r? `@ghost` `@rustbot` modify labels: rollup
…, r=compiler-errors Diagnostics: Be more careful when suggesting struct fields Consolidate the various places which filter out struct fields that shouldn't be suggested into a single function. Previously, each of those code paths had slightly different and incomplete metrics for no good reason. Now, there's only a single 'complete' metric (namely `is_field_suggestable`) which also filters out hygienic fields that come from different syntax contexts. Fixes rust-lang#116334.
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#115304 (Allow file names to end with '>') - rust-lang#116223 (Fix misuses of a vs an) - rust-lang#116296 (More accurately point to where default return type should go) - rust-lang#116429 (Diagnostics: Be more careful when suggesting struct fields) - rust-lang#116431 (Tweak wording of E0562) - rust-lang#116432 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 2)) r? `@ghost` `@rustbot` modify labels: rollup
…kingjubilee Rollup of 5 pull requests Successful merges: - rust-lang#116223 (Fix misuses of a vs an) - rust-lang#116296 (More accurately point to where default return type should go) - rust-lang#116429 (Diagnostics: Be more careful when suggesting struct fields) - rust-lang#116431 (Tweak wording of E0562) - rust-lang#116432 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 2)) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#116429 - fmease:clean-up-struct-field-suggs, r=compiler-errors Diagnostics: Be more careful when suggesting struct fields Consolidate the various places which filter out struct fields that shouldn't be suggested into a single function. Previously, each of those code paths had slightly different and incomplete metrics for no good reason. Now, there's only a single 'complete' metric (namely `is_field_suggestable`) which also filters out hygienic fields that come from different syntax contexts. Fixes rust-lang#116334.
23: Fix divergence from upstream `master` r=tshepang a=pvdrz * rust-lang/rust#116483 * rust-lang/rust#116475 * rust-lang/rust#116329 * rust-lang/rust#116198 * rust-lang/rust#115588 * rust-lang/rust#115522 * rust-lang/rust#115454 * rust-lang/rust#111595 * rust-lang/rust#116018 * rust-lang/rust#116472 * rust-lang/rust#116469 * rust-lang/rust#116421 * rust-lang/rust#116463 * rust-lang/rust#101150 * rust-lang/rust#116269 * rust-lang/rust#116417 * rust-lang/rust#116455 * rust-lang/rust#116452 * rust-lang/rust#116428 * rust-lang/rust#116415 * rust-lang/rust#116288 * rust-lang/rust#116220 * rust-lang/rust#103046 * rust-lang/rust#114042 * rust-lang/rust#104153 * rust-lang/rust#116427 * rust-lang/rust#116443 * rust-lang/rust#116432 * rust-lang/rust#116431 * rust-lang/rust#116429 * rust-lang/rust#116296 * rust-lang/rust#116223 * rust-lang/rust#116273 * rust-lang/rust#116184 * rust-lang/rust#116370 * rust-lang/rust#114417 * rust-lang/rust#115200 * rust-lang/rust#116413 * rust-lang/rust#116381 * rust-lang/rust#116360 * rust-lang/rust#116353 * rust-lang/rust#116406 * rust-lang/rust#116408 * rust-lang/rust#116395 * rust-lang/rust#116393 * rust-lang/rust#116388 * rust-lang/rust#116365 * rust-lang/rust#116363 * rust-lang/rust#116146 * rust-lang/rust#115961 * rust-lang/rust#116386 * rust-lang/rust#116367 * rust-lang/rust#105394 * rust-lang/rust#115301 * rust-lang/rust#116384 * rust-lang/rust#116379 * rust-lang/rust#116328 * rust-lang/rust#116282 * rust-lang/rust#116261 * rust-lang/rust#114654 * rust-lang/rust#116376 * rust-lang/rust#116374 * rust-lang/rust#116371 * rust-lang/rust#116358 * rust-lang/rust#116210 * rust-lang/rust#115863 * rust-lang/rust#115025 * rust-lang/rust#116372 * rust-lang/rust#116361 * rust-lang/rust#116355 * rust-lang/rust#116351 * rust-lang/rust#116158 * rust-lang/rust#115726 * rust-lang/rust#113053 * rust-lang/rust#116083 * rust-lang/rust#102099 * rust-lang/rust#116356 * rust-lang/rust#116350 * rust-lang/rust#116349 * rust-lang/rust#116289 * rust-lang/rust#114454 * rust-lang/rust#114453 * rust-lang/rust#116331 * rust-lang/rust#116346 * rust-lang/rust#116340 * rust-lang/rust#116326 * rust-lang/rust#116313 * rust-lang/rust#116276 * rust-lang/rust#115898 * rust-lang/rust#116325 * rust-lang/rust#116317 * rust-lang/rust#116207 * rust-lang/rust#116281 * rust-lang/rust#116304 * rust-lang/rust#116259 * rust-lang/rust#116228 * rust-lang/rust#116224 * rust-lang/rust#115554 * rust-lang/rust#116311 * rust-lang/rust#116299 * rust-lang/rust#116295 * rust-lang/rust#116292 * rust-lang/rust#116307 * rust-lang/rust#115670 * rust-lang/rust#116225 * rust-lang/rust#116302 * rust-lang/rust#116108 * rust-lang/rust#116160 * rust-lang/rust#116157 * rust-lang/rust#116127 * rust-lang/rust#116286 * rust-lang/rust#116254 * rust-lang/rust#116195 * rust-lang/rust#116280 * rust-lang/rust#115933 * rust-lang/rust#115546 * rust-lang/rust#115368 * rust-lang/rust#116275 * rust-lang/rust#116263 * rust-lang/rust#116241 * rust-lang/rust#116216 * rust-lang/rust#116030 * rust-lang/rust#116024 * rust-lang/rust#112123 * rust-lang/rust#113301 * rust-lang/rust#113797 * rust-lang/rust#115759 * rust-lang/rust#116260 * rust-lang/rust#116253 * rust-lang/rust#116245 * rust-lang/rust#116239 * rust-lang/rust#116234 * rust-lang/rust#116231 * rust-lang/rust#116201 * rust-lang/rust#116133 * rust-lang/rust#116176 * rust-lang/rust#116089 * rust-lang/rust#115986 Co-authored-by: ouz-a <[email protected]> Co-authored-by: bors <[email protected]> Co-authored-by: Samuel Thibault <[email protected]> Co-authored-by: linkmauve <[email protected]> Co-authored-by: onur-ozkan <[email protected]> Co-authored-by: asquared31415 <[email protected]> Co-authored-by: Emmanuel Ferdman <[email protected]> Co-authored-by: Ralf Jung <[email protected]> Co-authored-by: Nadrieril <[email protected]> Co-authored-by: Raekye <[email protected]> Co-authored-by: Mark Rousskov <[email protected]> Co-authored-by: Zalathar <[email protected]>
23: Fix divergence from upstream `master` r=pietroalbini a=pvdrz * rust-lang/rust#116483 * rust-lang/rust#116475 * rust-lang/rust#116329 * rust-lang/rust#116198 * rust-lang/rust#115588 * rust-lang/rust#115522 * rust-lang/rust#115454 * rust-lang/rust#111595 * rust-lang/rust#116018 * rust-lang/rust#116472 * rust-lang/rust#116469 * rust-lang/rust#116421 * rust-lang/rust#116463 * rust-lang/rust#101150 * rust-lang/rust#116269 * rust-lang/rust#116417 * rust-lang/rust#116455 * rust-lang/rust#116452 * rust-lang/rust#116428 * rust-lang/rust#116415 * rust-lang/rust#116288 * rust-lang/rust#116220 * rust-lang/rust#103046 * rust-lang/rust#114042 * rust-lang/rust#104153 * rust-lang/rust#116427 * rust-lang/rust#116443 * rust-lang/rust#116432 * rust-lang/rust#116431 * rust-lang/rust#116429 * rust-lang/rust#116296 * rust-lang/rust#116223 * rust-lang/rust#116273 * rust-lang/rust#116184 * rust-lang/rust#116370 * rust-lang/rust#114417 * rust-lang/rust#115200 * rust-lang/rust#116413 * rust-lang/rust#116381 * rust-lang/rust#116360 * rust-lang/rust#116353 * rust-lang/rust#116406 * rust-lang/rust#116408 * rust-lang/rust#116395 * rust-lang/rust#116393 * rust-lang/rust#116388 * rust-lang/rust#116365 * rust-lang/rust#116363 * rust-lang/rust#116146 * rust-lang/rust#115961 * rust-lang/rust#116386 * rust-lang/rust#116367 * rust-lang/rust#105394 * rust-lang/rust#115301 * rust-lang/rust#116384 * rust-lang/rust#116379 * rust-lang/rust#116328 * rust-lang/rust#116282 * rust-lang/rust#116261 * rust-lang/rust#114654 * rust-lang/rust#116376 * rust-lang/rust#116374 * rust-lang/rust#116371 * rust-lang/rust#116358 * rust-lang/rust#116210 * rust-lang/rust#115863 * rust-lang/rust#115025 * rust-lang/rust#116372 * rust-lang/rust#116361 * rust-lang/rust#116355 * rust-lang/rust#116351 * rust-lang/rust#116158 * rust-lang/rust#115726 * rust-lang/rust#113053 * rust-lang/rust#116083 * rust-lang/rust#102099 * rust-lang/rust#116356 * rust-lang/rust#116350 * rust-lang/rust#116349 * rust-lang/rust#116289 * rust-lang/rust#114454 * rust-lang/rust#114453 * rust-lang/rust#116331 * rust-lang/rust#116346 * rust-lang/rust#116340 * rust-lang/rust#116326 * rust-lang/rust#116313 * rust-lang/rust#116276 * rust-lang/rust#115898 * rust-lang/rust#116325 * rust-lang/rust#116317 * rust-lang/rust#116207 * rust-lang/rust#116281 * rust-lang/rust#116304 * rust-lang/rust#116259 * rust-lang/rust#116228 * rust-lang/rust#116224 * rust-lang/rust#115554 * rust-lang/rust#116311 * rust-lang/rust#116299 * rust-lang/rust#116295 * rust-lang/rust#116292 * rust-lang/rust#116307 * rust-lang/rust#115670 * rust-lang/rust#116225 * rust-lang/rust#116302 * rust-lang/rust#116108 * rust-lang/rust#116160 * rust-lang/rust#116157 * rust-lang/rust#116127 * rust-lang/rust#116286 * rust-lang/rust#116254 * rust-lang/rust#116195 * rust-lang/rust#116280 * rust-lang/rust#115933 * rust-lang/rust#115546 * rust-lang/rust#115368 * rust-lang/rust#116275 * rust-lang/rust#116263 * rust-lang/rust#116241 * rust-lang/rust#116216 * rust-lang/rust#116030 * rust-lang/rust#116024 * rust-lang/rust#112123 * rust-lang/rust#113301 * rust-lang/rust#113797 * rust-lang/rust#115759 * rust-lang/rust#116260 * rust-lang/rust#116253 * rust-lang/rust#116245 * rust-lang/rust#116239 * rust-lang/rust#116234 * rust-lang/rust#116231 * rust-lang/rust#116201 * rust-lang/rust#116133 * rust-lang/rust#116176 * rust-lang/rust#116089 * rust-lang/rust#115986 Co-authored-by: bors <[email protected]> Co-authored-by: ouz-a <[email protected]> Co-authored-by: Samuel Thibault <[email protected]> Co-authored-by: linkmauve <[email protected]> Co-authored-by: onur-ozkan <[email protected]> Co-authored-by: asquared31415 <[email protected]> Co-authored-by: Emmanuel Ferdman <[email protected]> Co-authored-by: Ralf Jung <[email protected]> Co-authored-by: Nadrieril <[email protected]> Co-authored-by: Raekye <[email protected]> Co-authored-by: Mark Rousskov <[email protected]> Co-authored-by: Zalathar <[email protected]>
23: Fix divergence from upstream `master` r=Dajamante a=pvdrz * rust-lang/rust#116483 * rust-lang/rust#116475 * rust-lang/rust#116329 * rust-lang/rust#116198 * rust-lang/rust#115588 * rust-lang/rust#115522 * rust-lang/rust#115454 * rust-lang/rust#111595 * rust-lang/rust#116018 * rust-lang/rust#116472 * rust-lang/rust#116469 * rust-lang/rust#116421 * rust-lang/rust#116463 * rust-lang/rust#101150 * rust-lang/rust#116269 * rust-lang/rust#116417 * rust-lang/rust#116455 * rust-lang/rust#116452 * rust-lang/rust#116428 * rust-lang/rust#116415 * rust-lang/rust#116288 * rust-lang/rust#116220 * rust-lang/rust#103046 * rust-lang/rust#114042 * rust-lang/rust#104153 * rust-lang/rust#116427 * rust-lang/rust#116443 * rust-lang/rust#116432 * rust-lang/rust#116431 * rust-lang/rust#116429 * rust-lang/rust#116296 * rust-lang/rust#116223 * rust-lang/rust#116273 * rust-lang/rust#116184 * rust-lang/rust#116370 * rust-lang/rust#114417 * rust-lang/rust#115200 * rust-lang/rust#116413 * rust-lang/rust#116381 * rust-lang/rust#116360 * rust-lang/rust#116353 * rust-lang/rust#116406 * rust-lang/rust#116408 * rust-lang/rust#116395 * rust-lang/rust#116393 * rust-lang/rust#116388 * rust-lang/rust#116365 * rust-lang/rust#116363 * rust-lang/rust#116146 * rust-lang/rust#115961 * rust-lang/rust#116386 * rust-lang/rust#116367 * rust-lang/rust#105394 * rust-lang/rust#115301 * rust-lang/rust#116384 * rust-lang/rust#116379 * rust-lang/rust#116328 * rust-lang/rust#116282 * rust-lang/rust#116261 * rust-lang/rust#114654 * rust-lang/rust#116376 * rust-lang/rust#116374 * rust-lang/rust#116371 * rust-lang/rust#116358 * rust-lang/rust#116210 * rust-lang/rust#115863 * rust-lang/rust#115025 * rust-lang/rust#116372 * rust-lang/rust#116361 * rust-lang/rust#116355 * rust-lang/rust#116351 * rust-lang/rust#116158 * rust-lang/rust#115726 * rust-lang/rust#113053 * rust-lang/rust#116083 * rust-lang/rust#102099 * rust-lang/rust#116356 * rust-lang/rust#116350 * rust-lang/rust#116349 * rust-lang/rust#116289 * rust-lang/rust#114454 * rust-lang/rust#114453 * rust-lang/rust#116331 * rust-lang/rust#116346 * rust-lang/rust#116340 * rust-lang/rust#116326 * rust-lang/rust#116313 * rust-lang/rust#116276 * rust-lang/rust#115898 * rust-lang/rust#116325 * rust-lang/rust#116317 * rust-lang/rust#116207 * rust-lang/rust#116281 * rust-lang/rust#116304 * rust-lang/rust#116259 * rust-lang/rust#116228 * rust-lang/rust#116224 * rust-lang/rust#115554 * rust-lang/rust#116311 * rust-lang/rust#116299 * rust-lang/rust#116295 * rust-lang/rust#116292 * rust-lang/rust#116307 * rust-lang/rust#115670 * rust-lang/rust#116225 * rust-lang/rust#116302 * rust-lang/rust#116108 * rust-lang/rust#116160 * rust-lang/rust#116157 * rust-lang/rust#116127 * rust-lang/rust#116286 * rust-lang/rust#116254 * rust-lang/rust#116195 * rust-lang/rust#116280 * rust-lang/rust#115933 * rust-lang/rust#115546 * rust-lang/rust#115368 * rust-lang/rust#116275 * rust-lang/rust#116263 * rust-lang/rust#116241 * rust-lang/rust#116216 * rust-lang/rust#116030 * rust-lang/rust#116024 * rust-lang/rust#112123 * rust-lang/rust#113301 * rust-lang/rust#113797 * rust-lang/rust#115759 * rust-lang/rust#116260 * rust-lang/rust#116253 * rust-lang/rust#116245 * rust-lang/rust#116239 * rust-lang/rust#116234 * rust-lang/rust#116231 * rust-lang/rust#116201 * rust-lang/rust#116133 * rust-lang/rust#116176 * rust-lang/rust#116089 * rust-lang/rust#115986 35: Automated pull from `rust-lang/libc` r=pietroalbini a=github-actions[bot] This PR pulls the following changes from the [`rust-lang/libc`](https://github.com/rust-lang/libc) repository: * rust-lang/libc#3335 * rust-lang/libc#3373 * rust-lang/libc#3360 * rust-lang/libc#3374 * rust-lang/libc#3375 * rust-lang/libc#3376 * rust-lang/libc#3377 Co-authored-by: ouz-a <[email protected]> Co-authored-by: Samuel Thibault <[email protected]> Co-authored-by: bors <[email protected]> Co-authored-by: linkmauve <[email protected]> Co-authored-by: onur-ozkan <[email protected]> Co-authored-by: asquared31415 <[email protected]> Co-authored-by: Emmanuel Ferdman <[email protected]> Co-authored-by: Ralf Jung <[email protected]> Co-authored-by: Nadrieril <[email protected]> Co-authored-by: Raekye <[email protected]> Co-authored-by: Mark Rousskov <[email protected]> Co-authored-by: Zalathar <[email protected]> Co-authored-by: Nikolay Arhipov <[email protected]> Co-authored-by: Brian Cain <[email protected]> Co-authored-by: Steve Lau <[email protected]> Co-authored-by: David CARLIER <[email protected]> Co-authored-by: Louis Dupré Bertoni <[email protected]> Co-authored-by: Taiki Endo <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Update Rust toolchain from nightly-2023-10-05 to nightly-2023-10-06 without any other source changes. This is an automatically generated pull request. If any of the CI checks fail, manual intervention is required. In such a case, review the changes at https://github.com/rust-lang/rust from rust-lang@2bbb619 up to rust-lang@cae0791. The log for this commit range is: rust-lang@cae0791da4 Auto merge of rust-lang#116417 - ouz-a:trait_type_detective, r=compiler-errors rust-lang@e30d27be00 remove is global hack rust-lang@cdca82c2c8 Auto merge of rust-lang#116455 - matthiaskrgr:rollup-p226a5u, r=matthiaskrgr rust-lang@76d0b794cb Rollup merge of rust-lang#116452 - cjgillot:noassert-erased, r=oli-obk rust-lang@c1c5ab717e Rollup merge of rust-lang#116428 - Alexendoo:note-duplicate-diagnostics, r=compiler-errors,estebank rust-lang@08cc7428d9 Rollup merge of rust-lang#116415 - ouz-a:move_subtyper, r=oli-obk rust-lang@b301bd4220 Rollup merge of rust-lang#116288 - ouz-a:smir_spans, r=spastorino rust-lang@864e5d8d94 Rollup merge of rust-lang#116220 - llogiq:stabilize-option-as-slice, r=BurntSushi rust-lang@3088c4b046 move subtyper change reveal_all rust-lang@14c846cb05 Do not assert that hidden types don't have erased regions. rust-lang@3bcad65fbf Auto merge of rust-lang#103046 - JanBeh:PR_clarify_cmp_terminology, r=workingjubilee rust-lang@cf9fd95b1c Auto merge of rust-lang#114042 - liushuyu:ubuntu/i586-fpmath, r=workingjubilee rust-lang@86b031b734 docs: Correct terminology in std::cmp rust-lang@90f3a6f920 Auto merge of rust-lang#104153 - tspiteri:doc-float-constants, r=workingjubilee rust-lang@5c3a0e932b Auto merge of rust-lang#116427 - cjgillot:no-internal, r=oli-obk rust-lang@a49138e46e impl stable for kinds rust-lang@a79567b01c add span to statements rust-lang@e293927016 Auto merge of rust-lang#116443 - workingjubilee:rollup-r9mh13f, r=workingjubilee rust-lang@4a14a80605 Rollup merge of rust-lang#116432 - notriddle:master, r=fmease rust-lang@d7b02c3d40 Rollup merge of rust-lang#116431 - estebank:issue-80476, r=compiler-errors rust-lang@a9a389cf44 Rollup merge of rust-lang#116429 - fmease:clean-up-struct-field-suggs, r=compiler-errors rust-lang@cfce3a919d Rollup merge of rust-lang#116296 - compiler-errors:default-return, r=estebank rust-lang@ea3454eabb Rollup merge of rust-lang#116223 - catandcoder:master, r=cjgillot rust-lang@5236c8e1fa Auto merge of rust-lang#116273 - compiler-errors:refine2, r=tmandry rust-lang@b781645332 Auto merge of rust-lang#116184 - compiler-errors:afit-lint, r=tmandry rust-lang@5453a9f34d Add a note to duplicate diagnostics rust-lang@afe67fa2ef Auto merge of rust-lang#116370 - nnethercote:more-arena-stuff, r=cjgillot rust-lang@2f5249019e Apply suggestions from code review rust-lang@dd5f26c42d Fix spans for comments in rustfmt rust-lang@1f079cfb44 Point to closure return instead of output if defaulted rust-lang@89b14ae212 Fix clippy rust-lang@137b6d0b01 Point to where missing return type should go rust-lang@a46ccd8d3f Add URL to test case issues rust-lang@9266270ef5 Rename issue-\d+.rs tests to have meaningful names rust-lang@041e54bd92 Tweak wording of E0562 rust-lang@867cc41b5b clean up struct field suggestions rust-lang@a198aff4a4 Add `crate_name` to test so that it can be renamed rust-lang@e63d19c4dd Remove mir::LocalDecl::internal. rust-lang@f44d116e1f Fix misuses of a vs an rust-lang@a2051dd578 Optimize some `alloc_from_iter` call sites. rust-lang@816383c60d Remove the `TypedArena::alloc_from_iter` specialization. rust-lang@c373d206cd Address review nits rust-lang@90dfa24415 Only reachable traits rust-lang@afea0b4eab Fill in prose to describe the `async_fn_in_trait` lint rust-lang@28d58f6524 Bless tests rust-lang@ec79720c1e Add async_fn_in_trait lint rust-lang@999a354a81 add span to terminator rust-lang@9130484db9 create localdecl and add span to it rust-lang@06d9602d33 Only trigger refine lint on reachable traits rust-lang@702da3b89c stabilize `Option::as_`(`mut_`)`slice` rust-lang@40a52cf55c core library: Disable fpmath tests for i386 ... rust-lang@c953b6c014 doc: expand description for f32 and f64 associated constants Co-authored-by: celinval <[email protected]>
Consolidate the various places which filter out struct fields that shouldn't be suggested into a single function.
Previously, each of those code paths had slightly different and incomplete metrics for no good reason. Now, there's only a single 'complete' metric (namely
is_field_suggestable
) which also filters out hygienic fields that come from different syntax contexts.Fixes #116334.