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.
This commit is contained in:
parent
a580b5c379
commit
93a19501c2
1 changed files with 1 additions and 8 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue