X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=crates%2Fhir_ty%2Fsrc%2Flower.rs;h=222f61a11d5430a3a2232a332d40a9c993ccc453;hb=0acdb730769cfb040ffc5e2c87f83b19fd3ce291;hp=8da56cd11c85b40f7361aec341bae8918c99a9f2;hpb=77ad203a719be074e81485af7a4fb02fac6cbf61;p=rust.git diff --git a/crates/hir_ty/src/lower.rs b/crates/hir_ty/src/lower.rs index 8da56cd11c8..222f61a11d5 100644 --- a/crates/hir_ty/src/lower.rs +++ b/crates/hir_ty/src/lower.rs @@ -16,9 +16,9 @@ path::{GenericArg, Path, PathSegment, PathSegments}, resolver::{HasResolver, Resolver, TypeNs}, type_ref::{TypeBound, TypeRef}, - AdtId, AssocContainerId, AssocItemId, ConstId, EnumId, EnumVariantId, FunctionId, GenericDefId, - HasModule, ImplId, LocalFieldId, Lookup, StaticId, StructId, TraitId, TypeAliasId, TypeParamId, - UnionId, VariantId, + AdtId, AssocContainerId, AssocItemId, ConstId, ConstParamId, EnumId, EnumVariantId, FunctionId, + GenericDefId, HasModule, ImplId, LocalFieldId, Lookup, StaticId, StructId, TraitId, + TypeAliasId, TypeParamId, UnionId, VariantId, }; use hir_expand::name::Name; use smallvec::SmallVec; @@ -1221,6 +1221,15 @@ pub(crate) fn impl_self_ty_query(db: &dyn HirDatabase, impl_id: ImplId) -> Binde Binders::new(generics.len(), Ty::from_hir(&ctx, &impl_data.target_type)) } +pub(crate) fn const_param_ty_query(db: &dyn HirDatabase, def: ConstParamId) -> Ty { + let parent_data = db.generic_params(def.parent); + let data = &parent_data.consts[def.local_id]; + let resolver = def.parent.resolver(db.upcast()); + let ctx = TyLoweringContext::new(db, &resolver); + + Ty::from_hir(&ctx, &data.ty) +} + pub(crate) fn impl_self_ty_recover( db: &dyn HirDatabase, _cycle: &[String],