rust/tests/compile-fail/toplevel_ref_arg.rs

27 lines
652 B
Rust
Raw Normal View History

2015-01-10 07:26:58 +01:00
#![feature(plugin)]
2015-03-02 11:43:44 +01:00
#![plugin(clippy)]
2015-04-13 19:58:18 +02:00
#![deny(clippy)]
#![allow(unused)]
2015-04-13 19:58:18 +02:00
fn the_answer(ref mut x: u8) { //~ ERROR `ref` directly on a function argument is ignored
*x = 42;
}
fn main() {
let mut x = 0;
the_answer(x);
// Closures should not warn
let y = |ref x| { println!("{:?}", x) };
y(1u8);
let ref x = 1; //~ ERROR `ref` on an entire `let` pattern is discouraged
//~^ HELP try `let x = &1;`
let ref y = (&1, 2); //~ ERROR `ref` on an entire `let` pattern is discouraged
//~^ HELP try `let y = &(&1, 2);`
let (ref x, _) = (1,2); // okay, not top level
println!("The answer is {}.", x);
}