diff options
| author | 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com> | 2025-01-20 12:38:31 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-20 12:38:31 +0800 |
| commit | 3f2f695d68334ca4ecc8aec0aa38b5391051c987 (patch) | |
| tree | f9416f39096ebe4d787479f8375cee4502c9119a | |
| parent | 1419f79acf0ef701ba6fdfcc4f2e7040ed31f0ae (diff) | |
| parent | 93a19501c2bad56e73f0ac9f3ae062b614d30832 (diff) | |
| download | rust-3f2f695d68334ca4ecc8aec0aa38b5391051c987.tar.gz rust-3f2f695d68334ca4ecc8aec0aa38b5391051c987.zip | |
Rollup merge of #135310 - estebank:issue-135289, r=Nadrieril
Always force non-trimming of path in `unreachable_patterns` lint Creating a "trimmed DefID path" when no error is being emitted is an ICE (on purpose). If we create a trimmed path for a lint that is then silenced before being emitted causes a known ICE. This side-steps the issue by always using `with_no_trimmed_path!`. This was verified to fix https://github.com/quinn-rs/quinn/, but couldn't write a repro case for the test suite. Fix #135289.
| -rw-r--r-- | compiler/rustc_mir_build/src/thir/pattern/check_match.rs | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/compiler/rustc_mir_build/src/thir/pattern/check_match.rs b/compiler/rustc_mir_build/src/thir/pattern/check_match.rs index a13b00e1921..66310867200 100644 --- a/compiler/rustc_mir_build/src/thir/pattern/check_match.rs +++ b/compiler/rustc_mir_build/src/thir/pattern/check_match.rs @@ -1086,14 +1086,7 @@ fn find_fallback_pattern_typo<'tcx>( let vis = cx.tcx.visibility(item.owner_id); if vis.is_accessible_from(parent, cx.tcx) { accessible.push(item_name); - let path = if item_name == name { - // We know that the const wasn't in scope because it has the exact - // same name, so we suggest the full path. - with_no_trimmed_paths!(cx.tcx.def_path_str(item.owner_id)) - } else { - // The const is likely just typoed, and nothing else. - cx.tcx.def_path_str(item.owner_id) - }; + let path = with_no_trimmed_paths!(cx.tcx.def_path_str(item.owner_id)); accessible_path.push(path); } else if name == item_name { // The const exists somewhere in this crate, but it can't be imported |
