1- error[E0277]: the trait bound `W<(dyn A + 'static)>: A` is not satisfied
1+ error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
22 --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:14:5
33 |
44LL | a as _
5- | ^ the trait `A` is not implemented for `W<(dyn A + 'static)>`
5+ | ^^^^^^
66 |
7- help: this trait has no implementations, consider adding one
8- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:8:1
7+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
8+ = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
9+ note: the lint level is defined here
10+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:6:9
911 |
10- LL | trait A {}
11- | ^^^^^^^
12- = note: required for the cast from `*const W<(dyn A + 'static)>` to `*const dyn A + Send`
12+ LL | #![deny(ptr_cast_add_auto_to_object)]
13+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
1314
14- error[E0277]: `(dyn A + 'static)` cannot be sent between threads safely
15- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:14 :5
15+ error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
16+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:20 :5
1617 |
1718LL | a as _
18- | ^ `(dyn A + 'static)` cannot be sent between threads safely
19- |
20- = help: within `W<(dyn A + 'static)>`, the trait `Send` is not implemented for `(dyn A + 'static)`
21- note: required because it appears within the type `W<(dyn A + 'static)>`
22- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:10:8
19+ | ^^^^^^
2320 |
24- LL | struct W<T: ?Sized>(T);
25- | ^
26- = note: required for the cast from `*const W<(dyn A + 'static)>` to `*const dyn A + Send`
21+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
22+ = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
2723
28- error[E0277]: the size for values of type `(dyn A + 'static)` cannot be known at compilation time
29- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:14 :5
24+ error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
25+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:26 :5
3026 |
3127LL | a as _
32- | ^ doesn't have a size known at compile-time
33- |
34- = help: within `W<(dyn A + 'static)>`, the trait `Sized` is not implemented for `(dyn A + 'static)`
35- note: required because it appears within the type `W<(dyn A + 'static)>`
36- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:10:8
28+ | ^^^^^^
3729 |
38- LL | struct W<T: ?Sized>(T);
39- | ^
40- = note: required for the cast from `*const W<(dyn A + 'static)>` to `*const dyn A + Send`
30+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
31+ = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
4132
42- error[E0277]: the trait bound `W<(dyn A + 'static)>: A` is not satisfied
43- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:21 :5
33+ error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
34+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:32 :5
4435 |
4536LL | a as _
46- | ^ the trait `A` is not implemented for `W<(dyn A + 'static)>`
47- |
48- help: this trait has no implementations, consider adding one
49- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:8:1
37+ | ^^^^^^
5038 |
51- LL | trait A {}
52- | ^^^^^^^
53- = note: required for the cast from `*const W<W<(dyn A + 'static)>>` to `*const W<dyn A + Send>`
39+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
40+ = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
5441
55- error[E0277]: `(dyn A + 'static)` cannot be sent between threads safely
56- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:21 :5
42+ error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
43+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:38 :5
5744 |
5845LL | a as _
59- | ^ `(dyn A + 'static)` cannot be sent between threads safely
60- |
61- = help: within `W<(dyn A + 'static)>`, the trait `Send` is not implemented for `(dyn A + 'static)`
62- note: required because it appears within the type `W<(dyn A + 'static)>`
63- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:10:8
46+ | ^^^^^^
6447 |
65- LL | struct W<T: ?Sized>(T);
66- | ^
67- = note: required for the cast from `*const W<W<(dyn A + 'static)>>` to `*const W<dyn A + Send>`
48+ = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
49+ = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
6850
69- error[E0277]: the size for values of type `(dyn A + 'static)` cannot be known at compilation time
70- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:21:5
71- |
72- LL | a as _
73- | ^ doesn't have a size known at compile-time
74- |
75- = help: within `W<(dyn A + 'static)>`, the trait `Sized` is not implemented for `(dyn A + 'static)`
76- note: required because it appears within the type `W<(dyn A + 'static)>`
77- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:10:8
78- |
79- LL | struct W<T: ?Sized>(T);
80- | ^
81- = note: required for the cast from `*const W<W<(dyn A + 'static)>>` to `*const W<dyn A + Send>`
51+ error: aborting due to 5 previous errors
8252
53+ Future incompatibility report: Future breakage diagnostic:
8354error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
84- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:28 :5
55+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:14 :5
8556 |
8657LL | a as _
8758 | ^^^^^^
@@ -94,30 +65,24 @@ note: the lint level is defined here
9465LL | #![deny(ptr_cast_add_auto_to_object)]
9566 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
9667
68+ Future breakage diagnostic:
9769error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
98- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:34 :5
70+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:20 :5
9971 |
10072LL | a as _
10173 | ^^^^^^
10274 |
10375 = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
10476 = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
105-
106- error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
107- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:40:5
108- |
109- LL | a as _
110- | ^^^^^^
77+ note: the lint level is defined here
78+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:6:9
11179 |
112- = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
113- = note: for more information, see issue #127323 <https://github.com/rust-lang/rust/issues/127323>
114-
115- error: aborting due to 9 previous errors
80+ LL | #![deny(ptr_cast_add_auto_to_object)]
81+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
11682
117- For more information about this error, try `rustc --explain E0277`.
118- Future incompatibility report: Future breakage diagnostic:
83+ Future breakage diagnostic:
11984error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
120- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:28 :5
85+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:26 :5
12186 |
12287LL | a as _
12388 | ^^^^^^
@@ -132,7 +97,7 @@ LL | #![deny(ptr_cast_add_auto_to_object)]
13297
13398Future breakage diagnostic:
13499error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
135- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:34 :5
100+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:32 :5
136101 |
137102LL | a as _
138103 | ^^^^^^
@@ -147,7 +112,7 @@ LL | #![deny(ptr_cast_add_auto_to_object)]
147112
148113Future breakage diagnostic:
149114error: adding an auto trait `Send` to a trait object in a pointer cast may cause UB later on
150- --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:40 :5
115+ --> $DIR/ptr-to-trait-obj-wrap-add-auto.rs:38 :5
151116 |
152117LL | a as _
153118 | ^^^^^^
0 commit comments