diff options
| author | Michael Goulet <michael@errs.io> | 2023-12-30 15:19:54 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-12-30 15:24:15 +0000 |
| commit | 07adee70729a2c88080c97045c7357c498815401 (patch) | |
| tree | 14dcbd0cddfef625a41eeb76b328cca1bfb33261 /compiler/rustc_middle/src/ty/instance.rs | |
| parent | d59f06fc64844ec2073e5e888f7470989ef25ff9 (diff) | |
| download | rust-07adee70729a2c88080c97045c7357c498815401.tar.gz rust-07adee70729a2c88080c97045c7357c498815401.zip | |
is_coroutine -> is_coroutine_or_closure
Diffstat (limited to 'compiler/rustc_middle/src/ty/instance.rs')
| -rw-r--r-- | compiler/rustc_middle/src/ty/instance.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/rustc_middle/src/ty/instance.rs b/compiler/rustc_middle/src/ty/instance.rs index 1b6d59ab257..4b222d33b10 100644 --- a/compiler/rustc_middle/src/ty/instance.rs +++ b/compiler/rustc_middle/src/ty/instance.rs @@ -426,7 +426,10 @@ impl<'tcx> Instance<'tcx> { ) -> Option<Instance<'tcx>> { debug!("resolve(def_id={:?}, args={:?})", def_id, args); // Use either `resolve_closure` or `resolve_for_vtable` - assert!(!tcx.is_closure(def_id), "Called `resolve_for_fn_ptr` on closure: {def_id:?}"); + assert!( + !tcx.is_closure_or_coroutine(def_id), + "Called `resolve_for_fn_ptr` on closure: {def_id:?}" + ); Instance::resolve(tcx, param_env, def_id, args).ok().flatten().map(|mut resolved| { match resolved.def { InstanceDef::Item(def) if resolved.def.requires_caller_location(tcx) => { @@ -488,7 +491,7 @@ impl<'tcx> Instance<'tcx> { }) ) { - if tcx.is_closure(def) { + if tcx.is_closure_or_coroutine(def) { debug!(" => vtable fn pointer created for closure with #[track_caller]: {:?} for method {:?} {:?}", def, def_id, args); @@ -658,7 +661,7 @@ fn polymorphize<'tcx>( // the unpolymorphized upvar closure would result in a polymorphized closure producing // multiple mono items (and eventually symbol clashes). let def_id = instance.def_id(); - let upvars_ty = if tcx.is_closure(def_id) { + let upvars_ty = if tcx.is_closure_or_coroutine(def_id) { Some(args.as_closure().tupled_upvars_ty()) } else if tcx.type_of(def_id).skip_binder().is_coroutine() { Some(args.as_coroutine().tupled_upvars_ty()) |
