20
20
//!
21
21
//! #[custom_mir(dialect = "built")]
22
22
//! pub fn simple(x: i32) -> i32 {
23
- //! mir!(
23
+ //! mir! {
24
24
//! let temp2: i32;
25
25
//!
26
26
//! {
33
33
//! RET = temp2;
34
34
//! Return()
35
35
//! }
36
- //! )
36
+ //! }
37
37
//! }
38
38
//! ```
39
39
//!
71
71
//!
72
72
//! #[custom_mir(dialect = "built")]
73
73
//! pub fn choose_load(a: &i32, b: &i32, c: bool) -> i32 {
74
- //! mir!(
74
+ //! mir! {
75
75
//! {
76
76
//! match c {
77
77
//! true => t,
93
93
//! RET = *temp;
94
94
//! Return()
95
95
//! }
96
- //! )
96
+ //! }
97
97
//! }
98
98
//!
99
99
//! #[custom_mir(dialect = "built")]
100
100
//! 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
+ //! }
105
107
//! }
106
108
//!
107
109
//! #[custom_mir(dialect = "runtime", phase = "optimized")]
108
110
//! fn push_and_pop<T>(v: &mut Vec<T>, value: T) {
109
- //! mir!(
111
+ //! mir! {
110
112
//! let _unused;
111
113
//! let popped;
112
114
//!
125
127
//! ret = {
126
128
//! Return()
127
129
//! }
128
- //! )
130
+ //! }
129
131
//! }
130
132
//!
131
133
//! #[custom_mir(dialect = "runtime", phase = "optimized")]
132
134
//! fn annotated_return_type() -> (i32, bool) {
133
- //! mir!(
135
+ //! mir! {
134
136
//! type RET = (i32, bool);
135
137
//! {
136
138
//! RET.0 = 1;
137
139
//! RET.1 = true;
138
140
//! Return()
139
141
//! }
140
- //! )
142
+ //! }
141
143
//! }
142
144
//! ```
143
145
//!
152
154
//!
153
155
//! #[custom_mir(dialect = "built")]
154
156
//! fn borrow_error(should_init: bool) -> i32 {
155
- //! mir!(
157
+ //! mir! {
156
158
//! let temp: i32;
157
159
//!
158
160
//! {
171
173
//! RET = temp;
172
174
//! Return()
173
175
//! }
174
- //! )
176
+ //! }
175
177
//! }
176
178
//! ```
177
179
//!
178
180
//! ```text
179
181
//! error[E0381]: used binding is possibly-uninitialized
180
182
//! --> test.rs:24:13
181
183
//! |
182
- //! 8 | / mir!(
184
+ //! 8 | / mir! {
183
185
//! 9 | | let temp: i32;
184
186
//! 10 | |
185
187
//! 11 | | {
191
193
//! | | ^^^^^^^^^^ value used here but it is possibly-uninitialized
192
194
//! 25 | | Return()
193
195
//! 26 | | }
194
- //! 27 | | )
196
+ //! 27 | | }
195
197
//! | |_____- binding declared here but left uninitialized
196
198
//!
197
199
//! error: aborting due to 1 previous error
@@ -407,18 +409,22 @@ define!(
407
409
///
408
410
/// #[custom_mir(dialect = "built")]
409
411
/// 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
+ /// }
414
418
/// }
415
419
///
416
420
/// #[custom_mir(dialect = "built")]
417
421
/// 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
+ /// }
422
428
/// }
423
429
/// ```
424
430
fn Field <F >( place: ( ) , field: u32 ) -> F
@@ -455,7 +461,7 @@ define!(
455
461
/// your MIR into something that is easier to parse in the compiler.
456
462
#[ rustc_macro_transparency = "transparent" ]
457
463
pub macro mir {
458
- (
464
+ {
459
465
$( type RET = $ret_ty: ty ; ) ?
460
466
$( let $local_decl: ident $( : $local_decl_ty: ty) ? ; ) *
461
467
$( debug $dbg_name: ident => $dbg_data: expr ; ) *
@@ -469,7 +475,7 @@ pub macro mir {
469
475
$( $block: tt) *
470
476
}
471
477
) *
472
- ) => { {
478
+ } => { {
473
479
// First, we declare all basic blocks.
474
480
__internal_declare_basic_blocks ! ( $(
475
481
$block_name $( ( $block_cleanup) ) ?
0 commit comments