diff options
| author | Michael Goulet <michael@errs.io> | 2023-12-25 17:04:14 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-12-28 16:35:01 +0000 |
| commit | 15ccf2e7bda95b5dd28cb98d5fee79592fb7b854 (patch) | |
| tree | 6408344289cf1e53b7430d0ccd642883220b12fd /compiler/stable_mir/src/mir | |
| parent | fcb42b42d6fc078b15a34ed27b969fe2ba290989 (diff) | |
| download | rust-15ccf2e7bda95b5dd28cb98d5fee79592fb7b854.tar.gz rust-15ccf2e7bda95b5dd28cb98d5fee79592fb7b854.zip | |
Restore movability to SMIR
Diffstat (limited to 'compiler/stable_mir/src/mir')
| -rw-r--r-- | compiler/stable_mir/src/mir/body.rs | 10 | ||||
| -rw-r--r-- | compiler/stable_mir/src/mir/pretty.rs | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/compiler/stable_mir/src/mir/body.rs b/compiler/stable_mir/src/mir/body.rs index c7f14476304..72227a04bf1 100644 --- a/compiler/stable_mir/src/mir/body.rs +++ b/compiler/stable_mir/src/mir/body.rs @@ -1,6 +1,7 @@ use crate::mir::pretty::{function_body, pretty_statement, pretty_terminator}; use crate::ty::{ - AdtDef, ClosureDef, Const, CoroutineDef, GenericArgs, Region, RigidTy, Ty, TyKind, VariantIdx, + AdtDef, ClosureDef, Const, CoroutineDef, GenericArgs, Movability, Region, RigidTy, Ty, TyKind, + VariantIdx, }; use crate::{Error, Opaque, Span, Symbol}; use std::io; @@ -645,7 +646,9 @@ impl Rvalue { )), AggregateKind::Adt(def, _, ref args, _, _) => Ok(def.ty_with_args(args)), AggregateKind::Closure(def, ref args) => Ok(Ty::new_closure(def, args.clone())), - AggregateKind::Coroutine(def, ref args) => Ok(Ty::new_coroutine(def, args.clone())), + AggregateKind::Coroutine(def, ref args, mov) => { + Ok(Ty::new_coroutine(def, args.clone(), mov)) + } }, Rvalue::ShallowInitBox(_, ty) => Ok(Ty::new_box(*ty)), Rvalue::CopyForDeref(place) => place.ty(locals), @@ -659,7 +662,8 @@ pub enum AggregateKind { Tuple, Adt(AdtDef, VariantIdx, GenericArgs, Option<UserTypeAnnotationIndex>, Option<FieldIdx>), Closure(ClosureDef, GenericArgs), - Coroutine(CoroutineDef, GenericArgs), + // FIXME(stable_mir): Movability here is redundant + Coroutine(CoroutineDef, GenericArgs, Movability), } #[derive(Clone, Debug, Eq, PartialEq)] diff --git a/compiler/stable_mir/src/mir/pretty.rs b/compiler/stable_mir/src/mir/pretty.rs index 13ebfb8f5de..8b7b488d312 100644 --- a/compiler/stable_mir/src/mir/pretty.rs +++ b/compiler/stable_mir/src/mir/pretty.rs @@ -443,7 +443,7 @@ pub fn pretty_ty(ty: TyKind) -> String { RigidTy::FnDef(_, _) => format!("{:#?}", rigid_ty), RigidTy::FnPtr(_) => format!("{:#?}", rigid_ty), RigidTy::Closure(_, _) => format!("{:#?}", rigid_ty), - RigidTy::Coroutine(_, _) => format!("{:#?}", rigid_ty), + RigidTy::Coroutine(_, _, _) => format!("{:#?}", rigid_ty), RigidTy::Dynamic(data, region, repr) => { // FIXME: Fix binder printing, it looks ugly now pretty.push_str("("); |
