mirror of https://github.com/rust-lang/rust.git
76 lines
2.7 KiB
Plaintext
76 lines
2.7 KiB
Plaintext
error[E0740]: field must implement `Copy` or be wrapped in `ManuallyDrop<...>` to be unsafe
|
|
--> $DIR/unsafe-fields.rs:20:5
|
|
|
|
|
LL | unsafe unsafe_noncopy_field: Vec<u32>,
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
= note: unsafe fields must not have drop side-effects, which is currently enforced via either `Copy` or `ManuallyDrop<...>`
|
|
help: wrap the field type in `ManuallyDrop<...>`
|
|
|
|
|
LL | unsafe unsafe_noncopy_field: std::mem::ManuallyDrop<Vec<u32>>,
|
|
| +++++++++++++++++++++++ +
|
|
|
|
error[E0133]: use of unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:15:30
|
|
|
|
|
LL | let A::WithUnsafeField { unsafe_field, safe_field } = a;
|
|
| ^^^^^^^^^^^^ use of unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error[E0133]: initializing type with an unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:43:9
|
|
|
|
|
LL | / WithUnsafeField {
|
|
LL | | unsafe_field: 0,
|
|
LL | | safe_field: 0,
|
|
LL | | }
|
|
| |_________^ initialization of struct with unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error[E0133]: use of unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:80:9
|
|
|
|
|
LL | self.unsafe_field = 2;
|
|
| ^^^^^^^^^^^^^^^^^ use of unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error[E0133]: use of unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:85:9
|
|
|
|
|
LL | self.unsafe_field
|
|
| ^^^^^^^^^^^^^^^^^ use of unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error[E0133]: use of unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:90:10
|
|
|
|
|
LL | &self.unsafe_field
|
|
| ^^^^^^^^^^^^^^^^^ use of unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error[E0133]: use of unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:95:32
|
|
|
|
|
LL | let Self { safe_field, unsafe_field } = self;
|
|
| ^^^^^^^^^^^^ use of unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error[E0133]: use of unsafe field is unsafe and requires unsafe block
|
|
--> $DIR/unsafe-fields.rs:106:20
|
|
|
|
|
LL | &raw const self.unsafe_field
|
|
| ^^^^^^^^^^^^^^^^^ use of unsafe field
|
|
|
|
|
= note: unsafe fields may carry library invariants
|
|
|
|
error: aborting due to 8 previous errors
|
|
|
|
Some errors have detailed explanations: E0133, E0740.
|
|
For more information about an error, try `rustc --explain E0133`.
|