diff --git a/.cargo/config.toml b/.cargo/config.toml index 808b4c07..68c292af 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -11,6 +11,7 @@ ruma-clippy = """\ -W clippy::dbg_macro \ -W clippy::disallowed_type \ -W clippy::empty_line_after_outer_attr \ + -W clippy::exhaustive_enums \ -W clippy::exhaustive_structs \ -W clippy::inefficient_to_string \ -W clippy::macro_use_imports \ diff --git a/crates/ruma-serde-macros/src/outgoing.rs b/crates/ruma-serde-macros/src/outgoing.rs index d219323b..d344f54d 100644 --- a/crates/ruma-serde-macros/src/outgoing.rs +++ b/crates/ruma-serde-macros/src/outgoing.rs @@ -159,6 +159,7 @@ fn filter_input_attrs(attr: &Attribute) -> bool { || attr.path.is_ident("cfg_attr") || attr.path.is_ident("serde") || attr.path.is_ident("non_exhaustive") + || attr.path.is_ident("allow") } fn impl_outgoing_with_incoming_self(input: &DeriveInput, ruma_serde: &TokenStream) -> TokenStream { diff --git a/crates/ruma/tests/outgoing.rs b/crates/ruma/tests/outgoing.rs index 7d6fae04..b4c16983 100644 --- a/crates/ruma/tests/outgoing.rs +++ b/crates/ruma/tests/outgoing.rs @@ -27,6 +27,7 @@ pub struct OtherThing<'t> { #[derive(Outgoing)] #[incoming_derive(!Deserialize)] +#[non_exhaustive] pub struct FakeRequest<'a, T> { pub abc: &'a str, pub thing: Thing<'a, T>, @@ -44,6 +45,7 @@ pub struct FakeRequest<'a, T> { #[derive(Outgoing)] #[incoming_derive(!Deserialize)] +#[non_exhaustive] pub enum EnumThing<'a, T> { Abc(&'a str), Stuff(Thing<'a, T>),