diff --git a/crates/hir-ty/src/lower.rs b/crates/hir-ty/src/lower.rs index 9370a2cee0..63772fb7c1 100644 --- a/crates/hir-ty/src/lower.rs +++ b/crates/hir-ty/src/lower.rs @@ -1784,7 +1784,7 @@ pub(crate) fn generic_defaults_query( }; let mut val = p.default.as_ref().map_or_else( - || unknown_const_as_generic(db.const_param_ty(id.into())), + || unknown_const_as_generic(db.const_param_ty(id)), |c| { let c = ctx.lower_const(c, ctx.lower_ty(&p.ty)); c.cast(Interner) diff --git a/crates/hir-ty/src/utils.rs b/crates/hir-ty/src/utils.rs index cadb099c2b..af5f7bb42a 100644 --- a/crates/hir-ty/src/utils.rs +++ b/crates/hir-ty/src/utils.rs @@ -480,10 +480,10 @@ impl Generics { crate::to_placeholder_idx(db, id.into()).to_ty(Interner).cast(Interner) } GenericParamId::ConstParamId(id) => crate::to_placeholder_idx(db, id.into()) - .to_const(Interner, db.const_param_ty(id.into())) + .to_const(Interner, db.const_param_ty(id)) .cast(Interner), GenericParamId::LifetimeParamId(id) => { - crate::lt_to_placeholder_idx(db, id.into()).to_lifetime(Interner).cast(Interner) + crate::lt_to_placeholder_idx(db, id).to_lifetime(Interner).cast(Interner) } }), ) diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index 5c474908e7..d4e8dcadbd 100644 --- a/crates/rust-analyzer/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs @@ -279,7 +279,8 @@ impl flags::AnalysisStats { let mut all = 0; let mut fail = 0; for &a in adts { - if db.generic_params(a.into()).iter().next().is_some() { + let generic_params = db.generic_params(a.into()); + if generic_params.iter().next().is_some() || generic_params.iter_lt().next().is_some() { // Data types with generics don't have layout. continue; }