2012-05-11 13:09:19 -07:00
|
|
|
// Check that pure functions cannot modify aliased state.
|
|
|
|
|
|
|
|
pure fn modify_in_ref(&&sum: {mut f: int}) {
|
2012-06-30 12:23:59 +01:00
|
|
|
sum.f = 3; //~ ERROR assigning to mutable field prohibited in pure context
|
2012-05-11 13:09:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
pure fn modify_in_box(sum: @mut {f: int}) {
|
2012-06-30 12:23:59 +01:00
|
|
|
sum.f = 3; //~ ERROR assigning to mutable field prohibited in pure context
|
2012-05-11 13:09:19 -07:00
|
|
|
}
|
|
|
|
|
2012-07-11 15:00:40 -07:00
|
|
|
trait modify_in_box_rec {
|
|
|
|
pure fn modify_in_box_rec(sum: @{mut f: int});
|
|
|
|
}
|
|
|
|
|
2012-08-07 18:10:06 -07:00
|
|
|
impl int: modify_in_box_rec {
|
2012-05-11 13:09:19 -07:00
|
|
|
pure fn modify_in_box_rec(sum: @{mut f: int}) {
|
2012-06-30 12:23:59 +01:00
|
|
|
sum.f = self; //~ ERROR assigning to mutable field prohibited in pure context
|
2012-05-11 13:09:19 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
2012-07-11 15:00:40 -07:00
|
|
|
}
|