summaryrefslogtreecommitdiffstats
path: root/src/test/ui/rfcs/rfc-2528-type-changing-struct-update/coerce-in-base-expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/rfcs/rfc-2528-type-changing-struct-update/coerce-in-base-expr.rs')
-rw-r--r--src/test/ui/rfcs/rfc-2528-type-changing-struct-update/coerce-in-base-expr.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/ui/rfcs/rfc-2528-type-changing-struct-update/coerce-in-base-expr.rs b/src/test/ui/rfcs/rfc-2528-type-changing-struct-update/coerce-in-base-expr.rs
new file mode 100644
index 000000000..75e48bf4a
--- /dev/null
+++ b/src/test/ui/rfcs/rfc-2528-type-changing-struct-update/coerce-in-base-expr.rs
@@ -0,0 +1,28 @@
+// check-pass
+
+#![feature(type_changing_struct_update)]
+#![allow(incomplete_features)]
+
+use std::any::Any;
+
+struct Foo<A, B: ?Sized, C: ?Sized> {
+ a: A,
+ b: Box<B>,
+ c: Box<C>,
+}
+
+struct B;
+struct C;
+
+fn main() {
+ let y = Foo::<usize, dyn Any, dyn Any> {
+ a: 0,
+ b: Box::new(B),
+ ..Foo {
+ a: 0,
+ b: Box::new(B),
+ // C needs to be told to coerce to `Box<dyn Any>`
+ c: Box::new(C),
+ }
+ };
+}