Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/macro_expansion_tests/builtin_derive_macro.rs')
-rw-r--r--crates/hir-def/src/macro_expansion_tests/builtin_derive_macro.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/crates/hir-def/src/macro_expansion_tests/builtin_derive_macro.rs b/crates/hir-def/src/macro_expansion_tests/builtin_derive_macro.rs
index c31d322132..25391c910e 100644
--- a/crates/hir-def/src/macro_expansion_tests/builtin_derive_macro.rs
+++ b/crates/hir-def/src/macro_expansion_tests/builtin_derive_macro.rs
@@ -211,6 +211,20 @@ enum Bar {
#[default]
Bar,
}
+#[derive(Default)]
+struct Baz {
+ field1: i32 = 2,
+ field2: bool = { false },
+}
+#[derive(Default)]
+enum Qux {
+ #[default]
+ Foo {
+ field1: i32,
+ field2: bool = true,
+ field3: (),
+ }
+}
"#,
expect![[r#"
#[derive(Default)]
@@ -224,6 +238,20 @@ enum Bar {
#[default]
Bar,
}
+#[derive(Default)]
+struct Baz {
+ field1: i32 = 2,
+ field2: bool = { false },
+}
+#[derive(Default)]
+enum Qux {
+ #[default]
+ Foo {
+ field1: i32,
+ field2: bool = true,
+ field3: (),
+ }
+}
impl <> $crate::default::Default for Foo< > where {
fn default() -> Self {
@@ -236,6 +264,20 @@ impl <> $crate::default::Default for Bar< > where {
fn default() -> Self {
Bar::Bar
}
+}
+impl <> $crate::default::Default for Baz< > where {
+ fn default() -> Self {
+ Baz {
+ ..
+ }
+ }
+}
+impl <> $crate::default::Default for Qux< > where {
+ fn default() -> Self {
+ Qux::Foo {
+ field1: $crate::default::Default::default(), field3: $crate::default::Default::default(), ..
+ }
+ }
}"#]],
);
}