25 lines
560 B
Rust
25 lines
560 B
Rust
|
// A version of `issue-70919-drop-in-loop`, but without
|
||
|
// the necessary `drop` call.
|
||
|
//
|
||
|
// This should fail to compile, since the `Drop` impl
|
||
|
// for `WrapperWithDrop` could observe the changed
|
||
|
// `base` value.
|
||
|
|
||
|
struct WrapperWithDrop<'a>(&'a mut bool);
|
||
|
impl<'a> Drop for WrapperWithDrop<'a> {
|
||
|
fn drop(&mut self) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn drop_in_loop() {
|
||
|
let mut base = true;
|
||
|
let mut wrapper = WrapperWithDrop(&mut base);
|
||
|
loop {
|
||
|
base = false; //~ ERROR: cannot assign to `base`
|
||
|
wrapper = WrapperWithDrop(&mut base);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
}
|