@@ -154,7 +154,7 @@ impl<'tcx> Interner for TyCtxt<'tcx> {
154154
155155 type VariancesOf = & ' tcx [ ty:: Variance ] ;
156156
157- fn variances_of ( self , def_id : Self :: DefId ) -> Self :: VariancesOf {
157+ fn variances_of ( self , def_id : DefId ) -> Self :: VariancesOf {
158158 self . variances_of ( def_id)
159159 }
160160
@@ -198,7 +198,7 @@ impl<'tcx> Interner for TyCtxt<'tcx> {
198198
199199 fn trait_ref_and_own_args_for_alias (
200200 self ,
201- def_id : Self :: DefId ,
201+ def_id : DefId ,
202202 args : Self :: GenericArgs ,
203203 ) -> ( rustc_type_ir:: TraitRef < Self > , Self :: GenericArgsSlice ) {
204204 assert_matches ! ( self . def_kind( def_id) , DefKind :: AssocTy | DefKind :: AssocConst ) ;
@@ -246,7 +246,7 @@ impl<'tcx> Interner for TyCtxt<'tcx> {
246246 self . mk_type_list_from_iter ( args)
247247 }
248248
249- fn parent ( self , def_id : Self :: DefId ) -> Self :: DefId {
249+ fn parent ( self , def_id : DefId ) -> DefId {
250250 self . parent ( def_id)
251251 }
252252
@@ -259,6 +259,49 @@ impl<'tcx> Interner for TyCtxt<'tcx> {
259259 fn features ( self ) -> Self :: Features {
260260 self . features ( )
261261 }
262+
263+ fn bound_coroutine_hidden_types (
264+ self ,
265+ def_id : DefId ,
266+ ) -> impl Iterator < Item = ty:: EarlyBinder < ' tcx , ty:: Binder < ' tcx , Ty < ' tcx > > > > {
267+ self . bound_coroutine_hidden_types ( def_id)
268+ }
269+
270+ fn fn_sig ( self , def_id : DefId ) -> ty:: EarlyBinder < ' tcx , ty:: PolyFnSig < ' tcx > > {
271+ self . fn_sig ( def_id)
272+ }
273+
274+ fn coroutine_movability ( self , def_id : DefId ) -> rustc_ast:: Movability {
275+ self . coroutine_movability ( def_id)
276+ }
277+
278+ fn coroutine_for_closure ( self , def_id : DefId ) -> DefId {
279+ self . coroutine_for_closure ( def_id)
280+ }
281+
282+ fn generics_require_sized_self ( self , def_id : DefId ) -> bool {
283+ self . generics_require_sized_self ( def_id)
284+ }
285+
286+ fn item_bounds (
287+ self ,
288+ def_id : DefId ,
289+ ) -> ty:: EarlyBinder < ' tcx , impl Iterator < Item = ty:: Clause < ' tcx > > > {
290+ self . item_bounds ( def_id) . map_bound ( IntoIterator :: into_iter)
291+ }
292+
293+ fn super_predicates_of (
294+ self ,
295+ def_id : DefId ,
296+ ) -> ty:: EarlyBinder < ' tcx , impl Iterator < Item = ty:: Clause < ' tcx > > > {
297+ ty:: EarlyBinder :: bind (
298+ self . super_predicates_of ( def_id) . instantiate_identity ( self ) . predicates . into_iter ( ) ,
299+ )
300+ }
301+
302+ fn has_target_features ( self , def_id : DefId ) -> bool {
303+ !self . codegen_fn_attrs ( def_id) . target_features . is_empty ( )
304+ }
262305}
263306
264307impl < ' tcx > rustc_type_ir:: inherent:: Abi < TyCtxt < ' tcx > > for abi:: Abi {
@@ -281,6 +324,10 @@ impl<'tcx> rustc_type_ir::inherent::Features<TyCtxt<'tcx>> for &'tcx rustc_featu
281324 fn generic_const_exprs ( self ) -> bool {
282325 self . generic_const_exprs
283326 }
327+
328+ fn coroutine_clone ( self ) -> bool {
329+ self . coroutine_clone
330+ }
284331}
285332
286333type InternedSet < ' tcx , T > = ShardedHashMap < InternedInSet < ' tcx , T > , ( ) > ;
0 commit comments