diff --git a/compiler/rustc_hir_analysis/src/astconv/bounds.rs b/compiler/rustc_hir_analysis/src/astconv/bounds.rs index 117df5482e665..c72096ea4652b 100644 --- a/compiler/rustc_hir_analysis/src/astconv/bounds.rs +++ b/compiler/rustc_hir_analysis/src/astconv/bounds.rs @@ -433,12 +433,10 @@ impl<'tcx> dyn AstConv<'tcx> + '_ { }); // Provide the resolved type of the associated constant to `type_of(AnonConst)`. - if !speculative && let ty::AssocKind::Const = assoc_kind { - let hir::TypeBindingKind::Equality { term: hir::Term::Const(anon_const) } = + if !speculative + && let hir::TypeBindingKind::Equality { term: hir::Term::Const(anon_const) } = binding.kind - else { - bug!() - }; + { let ty = alias_ty.map_bound(|ty| tcx.type_of(ty.def_id).instantiate(tcx, ty.args)); // Since the arguments passed to the alias type above may contain early-bound // generic parameters, the instantiated type may contain some as well.