2020//!
2121//! #[custom_mir(dialect = "built")]
2222//! pub fn simple(x: i32) -> i32 {
23- //! mir!(
23+ //! mir! {
2424//! let temp2: i32;
2525//!
2626//! {
3333//! RET = temp2;
3434//! Return()
3535//! }
36- //!)
36+ //!}
3737//! }
3838//! ```
3939//!
7171//!
7272//! #[custom_mir(dialect = "built")]
7373//! pub fn choose_load(a: &i32, b: &i32, c: bool) -> i32 {
74- //! mir!(
74+ //! mir! {
7575//! {
7676//! match c {
7777//! true => t,
9393//! RET = *temp;
9494//! Return()
9595//! }
96- //!)
96+ //!}
9797//! }
9898//!
9999//! #[custom_mir(dialect = "built")]
100100//! fn unwrap_unchecked<T>(opt: Option<T>) -> T {
101- //! mir!({
102- //! RET = Move(Field(Variant(opt, 1), 0));
103- //! Return()
104- //! })
101+ //! mir! {
102+ //! {
103+ //! RET = Move(Field(Variant(opt, 1), 0));
104+ //! Return()
105+ //! }
106+ //! }
105107//! }
106108//!
107109//! #[custom_mir(dialect = "runtime", phase = "optimized")]
108110//! fn push_and_pop<T>(v: &mut Vec<T>, value: T) {
109- //! mir!(
111+ //! mir! {
110112//! let _unused;
111113//! let popped;
112114//!
125127//! ret = {
126128//! Return()
127129//! }
128- //!)
130+ //!}
129131//! }
130132//!
131133//! #[custom_mir(dialect = "runtime", phase = "optimized")]
132134//! fn annotated_return_type() -> (i32, bool) {
133- //! mir!(
135+ //! mir! {
134136//! type RET = (i32, bool);
135137//! {
136138//! RET.0 = 1;
137139//! RET.1 = true;
138140//! Return()
139141//! }
140- //!)
142+ //!}
141143//! }
142144//! ```
143145//!
152154//!
153155//! #[custom_mir(dialect = "built")]
154156//! fn borrow_error(should_init: bool) -> i32 {
155- //! mir!(
157+ //! mir! {
156158//! let temp: i32;
157159//!
158160//! {
171173//! RET = temp;
172174//! Return()
173175//! }
174- //!)
176+ //!}
175177//! }
176178//! ```
177179//!
178180//! ```text
179181//! error[E0381]: used binding is possibly-uninitialized
180182//! --> test.rs:24:13
181183//! |
182- //! 8 | / mir!(
184+ //! 8 | / mir! {
183185//! 9 | | let temp: i32;
184186//! 10 | |
185187//! 11 | | {
191193//! | | ^^^^^^^^^^ value used here but it is possibly-uninitialized
192194//! 25 | | Return()
193195//! 26 | | }
194- //! 27 | |)
196+ //! 27 | |}
195197//! | |_____- binding declared here but left uninitialized
196198//!
197199//! error: aborting due to 1 previous error
@@ -407,18 +409,22 @@ define!(
407409///
408410/// #[custom_mir(dialect = "built")]
409411/// fn unwrap_deref(opt: Option<&i32>) -> i32 {
410- /// mir!({
411- /// RET = *Field::<&i32>(Variant(opt, 1), 0);
412- /// Return()
413- /// })
412+ /// mir! {
413+ /// {
414+ /// RET = *Field::<&i32>(Variant(opt, 1), 0);
415+ /// Return()
416+ /// }
417+ /// }
414418/// }
415419///
416420/// #[custom_mir(dialect = "built")]
417421/// fn set(opt: &mut Option<i32>) {
418- /// mir!({
419- /// place!(Field(Variant(*opt, 1), 0)) = 5;
420- /// Return()
421- /// })
422+ /// mir! {
423+ /// {
424+ /// place!(Field(Variant(*opt, 1), 0)) = 5;
425+ /// Return()
426+ /// }
427+ /// }
422428/// }
423429/// ```
424430fn Field <F >( place: ( ) , field: u32 ) ->F
@@ -455,7 +461,7 @@ define!(
455461/// your MIR into something that is easier to parse in the compiler.
456462#[ rustc_macro_transparency ="transparent" ]
457463pub macro mir{
458- (
464+ {
459465 $( typeRET = $ret_ty: ty; ) ?
460466 $( let $local_decl: ident $( : $local_decl_ty: ty) ?; ) *
461467 $( debug $dbg_name: ident => $dbg_data: expr; ) *
@@ -469,7 +475,7 @@ pub macro mir {
469475 $( $block: tt) *
470476}
471477) *
472- ) =>{ {
478+ } =>{ {
473479// First, we declare all basic blocks.
474480__internal_declare_basic_blocks ! ( $(
475481 $block_name $( ( $block_cleanup) ) ?