Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/next_solver/generics.rs')
-rw-r--r--crates/hir-ty/src/next_solver/generics.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/hir-ty/src/next_solver/generics.rs b/crates/hir-ty/src/next_solver/generics.rs
index 570e245922..2f8c7dc160 100644
--- a/crates/hir-ty/src/next_solver/generics.rs
+++ b/crates/hir-ty/src/next_solver/generics.rs
@@ -19,6 +19,23 @@ pub(crate) fn generics(interner: DbInterner<'_>, def: SolverDefId) -> Generics<'
(_, SolverDefId::BuiltinDeriveImplId(id)) => {
return crate::builtin_derive::generics_of(interner, id);
}
+ (_, SolverDefId::AnonConstId(id)) => {
+ let loc = id.loc(db);
+ let generic_def = loc.owner.generic_def(db);
+ return if loc.allow_using_generic_params {
+ Generics::from_generic_def(db, generic_def)
+ } else {
+ #[expect(
+ deprecated,
+ reason = "`Generics` only exposes an iterator over `GenericParamId`, \
+ so you cannot exploit the erroneous `crate::generics::Generics`"
+ )]
+ Generics {
+ generics: crate::generics::Generics::empty(generic_def),
+ additional_param: None,
+ }
+ };
+ }
_ => panic!("No generics for {def:?}"),
};