23 lines
488 B
Rust
23 lines
488 B
Rust
// revisions: ast mir
|
|
//[mir]compile-flags: -Z borrowck=mir
|
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
enum Sexpression {
|
|
Num(()),
|
|
Cons(&'static mut Sexpression)
|
|
}
|
|
|
|
fn causes_error_in_ast(mut l: &mut Sexpression) {
|
|
loop { match l {
|
|
&mut Sexpression::Num(ref mut n) => {},
|
|
&mut Sexpression::Cons(ref mut expr) => { //[ast]~ ERROR [E0499]
|
|
l = &mut **expr; //[ast]~ ERROR [E0506]
|
|
}
|
|
}}
|
|
}
|
|
|
|
#[rustc_error]
|
|
fn main() { //[mir]~ ERROR compilation successful
|
|
}
|