diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-10-19 17:25:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-19 17:25:33 +0200 |
| commit | a394d4928b73bd6f44deb5bb46b61b92997f27ab (patch) | |
| tree | eefbc3e558fca08f7fa92f82e55021168ed22ae9 | |
| parent | 5a3ecd53e4e23ff1b6389c7684d5bdadb9980666 (diff) | |
| parent | 8f2273e518c939f10c3ba891058cd7a43aedce23 (diff) | |
| download | rust-a394d4928b73bd6f44deb5bb46b61b92997f27ab.tar.gz rust-a394d4928b73bd6f44deb5bb46b61b92997f27ab.zip | |
Rollup merge of #131537 - hirschenberger:master, r=compiler-errors
Fix range misleading field access Fixes #131471 by checking if the range-start is a literal.
| -rw-r--r-- | compiler/rustc_resolve/src/late.rs | 1 | ||||
| -rw-r--r-- | tests/ui/range/misleading-field-access-hint.rs | 8 | ||||
| -rw-r--r-- | tests/ui/range/misleading-field-access-hint.stderr | 9 |
3 files changed, 18 insertions, 0 deletions
diff --git a/compiler/rustc_resolve/src/late.rs b/compiler/rustc_resolve/src/late.rs index b84cbf9c629..98db36b12be 100644 --- a/compiler/rustc_resolve/src/late.rs +++ b/compiler/rustc_resolve/src/late.rs @@ -4011,6 +4011,7 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> { let instead = res.is_some(); let suggestion = if let Some((start, end)) = this.diag_metadata.in_range && path[0].ident.span.lo() == end.span.lo() + && !matches!(start.kind, ExprKind::Lit(_)) { let mut sugg = "."; let mut span = start.span.between(end.span); diff --git a/tests/ui/range/misleading-field-access-hint.rs b/tests/ui/range/misleading-field-access-hint.rs new file mode 100644 index 00000000000..252f1a4833c --- /dev/null +++ b/tests/ui/range/misleading-field-access-hint.rs @@ -0,0 +1,8 @@ +// Check if rustc still displays the misleading hint to write `.` instead of `..` +fn main() { + let width = 10; + // ... + for _ in 0..w { + //~^ ERROR cannot find value `w` + } +} diff --git a/tests/ui/range/misleading-field-access-hint.stderr b/tests/ui/range/misleading-field-access-hint.stderr new file mode 100644 index 00000000000..9b112a5fdd8 --- /dev/null +++ b/tests/ui/range/misleading-field-access-hint.stderr @@ -0,0 +1,9 @@ +error[E0425]: cannot find value `w` in this scope + --> $DIR/misleading-field-access-hint.rs:5:17 + | +LL | for _ in 0..w { + | ^ not found in this scope + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0425`. |
