diff --git a/compiler/rustc_hir_analysis/src/collect/generics_of.rs b/compiler/rustc_hir_analysis/src/collect/generics_of.rs index a986ae3964e26..dcc5579e14339 100644 --- a/compiler/rustc_hir_analysis/src/collect/generics_of.rs +++ b/compiler/rustc_hir_analysis/src/collect/generics_of.rs @@ -140,7 +140,8 @@ pub(super) fn generics_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::Generics { // // This has some implications for how we get the clauses available to the anon const // see `explicit_clauses_of` for more information on this - let generics = tcx.generics_of(parent_did); + let parent_def_id = tcx.local_parent(param_id); + let generics = tcx.generics_of(parent_def_id); let param_def_idx = generics.param_def_id_to_index[¶m_id.to_def_id()]; // In the above example this would be .params[..N#0] let own_params = generics.params_to(param_def_idx as usize, tcx).to_owned(); diff --git a/tests/ui/const-generics/generic_const_exprs/direct-inline-const-generic-default.rs b/tests/ui/const-generics/generic_const_exprs/direct-inline-const-generic-default.rs new file mode 100644 index 0000000000000..358d0d997cae8 --- /dev/null +++ b/tests/ui/const-generics/generic_const_exprs/direct-inline-const-generic-default.rs @@ -0,0 +1,10 @@ +//@ check-pass + +// Regression test for https://github.com/rust-lang/rust/issues/159063. + +#![feature(generic_const_exprs)] +#![feature(min_generic_const_args)] + +struct S; + +fn main() {}