From 7bde18a0f3dc52754eb52d09da0bc259b1a0e757 Mon Sep 17 00:00:00 2001 From: SparrowLii Date: Tue, 19 Oct 2021 11:08:12 +0800 Subject: implement type-changing-struct-update put the test dir in test/ui/rfcs --- .../type-changing-struct-update.md | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/doc/unstable-book/src/language-features/type-changing-struct-update.md (limited to 'src/doc') diff --git a/src/doc/unstable-book/src/language-features/type-changing-struct-update.md b/src/doc/unstable-book/src/language-features/type-changing-struct-update.md new file mode 100644 index 00000000000..9909cf35b5b --- /dev/null +++ b/src/doc/unstable-book/src/language-features/type-changing-struct-update.md @@ -0,0 +1,33 @@ +# `type_changing_struct_update` + +The tracking issue for this feature is: [#86555] + +[#86555]: https://github.com/rust-lang/rust/issues/86555 + +------------------------ + +This implements [RFC2528]. When turned on, you can create instances of the same struct +that have different generic type or lifetime parameters. + +[RFC2528]: https://github.com/rust-lang/rfcs/blob/master/text/2528-type-changing-struct-update-syntax.md + +```rust +#![allow(unused_variables, dead_code)] +#![feature(type_changing_struct_update)] + +fn main () { + struct Foo { + field1: T, + field2: U, + } + + let base: Foo = Foo { + field1: String::from("hello"), + field2: 1234, + }; + let updated: Foo = Foo { + field1: 3.14, + ..base + }; +} +``` -- cgit 1.4.1-3-g733a5