about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/errors.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-10-10 09:17:20 +0000
committerPhilipp Krones <hello@philkrones.com>2024-10-10 11:34:13 +0200
commita21a9fe3322cf3c3707f6e6ac644dfbe118a66dc (patch)
treeacec1fa92b347dd5d7f92dd7db5f64fc58b1c64b /compiler/rustc_pattern_analysis/src/errors.rs
parentdf1b5d3cc2117f1ee96abca25678bc5f5604d450 (diff)
downloadrust-a21a9fe3322cf3c3707f6e6ac644dfbe118a66dc.tar.gz
rust-a21a9fe3322cf3c3707f6e6ac644dfbe118a66dc.zip
Auto merge of #13464 - y21:issue13458, r=flip1995
Don't warn on proc macro generated code in `needless_return`

Fixes #13458
Fixes #13457
Fixes #13467
Fixes #13479
Fixes #13481
Fixes #13526
Fixes #13486

The fix is unfortunately a little more convoluted than just simply adding a `is_from_proc_macro`. That check *does*  fix the issue, however it also introduces a bunch of false negatives in the tests, specifically when the returned expression is in a different syntax context, e.g. `return format!(..)`.

The proc macro check builds up a start and end pattern based on the HIR nodes and compares it to a snippet of the span, however that would currently fail for `return format!(..)` because we would have the patterns `("return", <something inside of the format macro>)`, which doesn't compare equal. So we now return an empty string pattern for when it's in a different syntax context.

"Hide whitespace" helps a bit for reviewing the proc macro detection change

changelog: none
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/errors.rs')
0 files changed, 0 insertions, 0 deletions