Auto merge of #96770 - flip1995:fix-trait-type-in-bounds, r=cjgillot
Track if a where bound comes from a impl Trait desugar With https://github.com/rust-lang/rust/pull/93803 `impl Trait` function arguments get desugared to hidden where bounds. However, Clippy needs to know if a bound was originally a `impl Trait` or an actual bound. This adds a field to the `WhereBoundPredicate` struct to keep track of this information during AST->HIR lowering. r? `@cjgillot` cc `@estebank` (as the reviewer of #93803)
This commit is contained in:
commit
ed3164baf0
11 changed files with 40 additions and 34 deletions
|
|
@ -16,6 +16,7 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
|||
use rustc_hir as hir;
|
||||
use rustc_hir::def::{CtorKind, DefKind, Res};
|
||||
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
||||
use rustc_hir::PredicateOrigin;
|
||||
use rustc_infer::infer::region_constraints::{Constraint, RegionConstraintData};
|
||||
use rustc_middle::middle::resolve_lifetime as rl;
|
||||
use rustc_middle::ty::fold::TypeFolder;
|
||||
|
|
@ -493,7 +494,7 @@ fn clean_generic_param(
|
|||
let bounds = if let Some(generics) = generics {
|
||||
generics
|
||||
.bounds_for_param(did)
|
||||
.filter(|bp| !bp.in_where_clause)
|
||||
.filter(|bp| bp.origin != PredicateOrigin::WhereClause)
|
||||
.flat_map(|bp| bp.bounds)
|
||||
.filter_map(|x| x.clean(cx))
|
||||
.collect()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue