rust/tests/ui/borrowck/reassignment_immutable_fields_overlapping.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

17 lines
293 B
Rust
Raw Normal View History

// This should never be allowed -- `foo.a` and `foo.b` are
// overlapping, so since `x` is not `mut` we should not permit
// reassignment.
union Foo {
a: u32,
b: u32,
}
unsafe fn overlapping_fields() {
let x: Foo;
x.a = 1; //~ ERROR
x.b = 22; //~ ERROR
}
fn main() { }