1
Fork 0
rust/tests/ui/unsafe-fields/unsafe-fields-crate.stderr
Jack Wrenn a122dde217 do not implement unsafe auto traits for types with unsafe fields
If a type has unsafe fields, its safety invariants are not simply
the conjunction of its field types' safety invariants. Consequently,
it's invalid to reason about the safety properties of these types
in a purely structural manner — i.e., the manner in which `auto`
traits are implemented.

Makes progress towards #132922.
2024-12-05 23:52:21 +00:00

47 lines
1.5 KiB
Text

error[E0133]: initializing type with an unsafe field is unsafe and requires unsafe block
--> $DIR/unsafe-fields-crate.rs:9:5
|
LL | / WithUnsafeField {
LL | |
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-crate.rs:43:5
|
LL | s.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-crate.rs:48:5
|
LL | s.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-crate.rs:53:6
|
LL | &s.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-crate.rs:58:39
|
LL | let WithUnsafeField { safe_field, unsafe_field } = s;
| ^^^^^^^^^^^^ use of unsafe field
|
= note: unsafe fields may carry library invariants
error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0133`.