Hey guys,
I'm really new to Rust (actually I've looked on Rust the last 5 hours the first
time) but I think I produced something that shouldn't be possible. From the
pointer guide I know that the following code will not compile because in the
end I would have two mutable pointers to the same address:
let x = 5i;
let y = &x;
let z = &x;
But in the following snippet I end up with two mutable pointer tmp and *i which
point both to the same address:
fn bar<'a>(i: &mut &'a int) {
let mut tmp = *i;
println!("{} {}", *tmp, **i);
}
fn foo<'a>() {
let mut i: &int = &mut 5;
bar(&mut i);
}
fn main() {
foo();
}
Maybe I don't understand the concept of the Rust memory concept enough but if I
understand everything correct so far this shouldn't compile but it does
actually.
Kind regards,
grayfox
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev