From d4fdc2d642139fb90702ca6e8eacc3d042d0e1f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20K=C3=A4nner?= Date: Sun, 18 Aug 2024 17:37:53 +0200 Subject: [PATCH] remove conflicting default impl --- src/parser.rs | 1 + tests/simple.rs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/parser.rs b/src/parser.rs index 3d6ecc2..08e7a7c 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -50,6 +50,7 @@ impl ConfigField { derive.contains("Tree") || derive.contains("Serialize") || derive.contains("Deserialize") + || (self.default.is_some() && derive.contains("Default")) }) == Some(false) }); quote! {#[derive(#(#derives,)*)]} diff --git a/tests/simple.rs b/tests/simple.rs index 4ca1d94..b9c7f62 100644 --- a/tests/simple.rs +++ b/tests/simple.rs @@ -31,6 +31,14 @@ struct Config { sub_config: SubConfig, } +/// Config with default derive and default field +#[config] +#[derive(Default)] +struct _DefaultConfig { + #[config(default)] + field: i32, +} + #[rstest] #[case(0, ["skipped"])] #[case(1, ["min"])]