From 3101be1f998740780bddd7d2d4c4b3f265ba59ae Mon Sep 17 00:00:00 2001 From: Devin Ragotzy Date: Thu, 22 Jul 2021 08:34:30 -0400 Subject: [PATCH] Add macro-braces, disallowed-type and import-rename clippy lints --- .cargo/config.toml | 3 +++ .clippy.toml | 11 +++++++++++ crates/ruma-api-macros/src/api/request.rs | 8 ++++---- .../ruma-api-macros/src/api/request/incoming.rs | 11 +++++++---- .../ruma-api-macros/src/api/request/outgoing.rs | 12 ++++++------ crates/ruma-events-macros/src/event_enum.rs | 16 ++++++++-------- crates/ruma-events/src/room/message.rs | 1 + crates/ruma-state-res/.clippy.toml | 10 ++++++++++ 8 files changed, 50 insertions(+), 22 deletions(-) create mode 100644 crates/ruma-state-res/.clippy.toml diff --git a/.cargo/config.toml b/.cargo/config.toml index 857af392..808b4c07 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -9,14 +9,17 @@ ruma-clippy = """\ -W clippy::branches_sharing_code \ -W clippy::cloned_instead_of_copied \ -W clippy::dbg_macro \ + -W clippy::disallowed_type \ -W clippy::empty_line_after_outer_attr \ -W clippy::exhaustive_structs \ -W clippy::inefficient_to_string \ -W clippy::macro_use_imports \ -W clippy::map_flatten \ + -W clippy::missing_enforced_import_renames \ -W clippy::mut_mut \ -W clippy::needless_borrow \ -A clippy::new_without_default \ + -W clippy::nonstandard_macro_braces \ -W clippy::str_to_string \ -W clippy::todo \ -W clippy::unreadable_literal \ diff --git a/.clippy.toml b/.clippy.toml index 72b5a65a..6d497a6e 100644 --- a/.clippy.toml +++ b/.clippy.toml @@ -1 +1,12 @@ msrv = "1.50" +disallowed-types = [ + "std::collections::HashMap", + "std::collections::HashSet", +] +enforced-import-renames = [ + { path = "serde_json::Value", rename = "JsonValue" }, +] +standard-macro-braces = [ + { name = "quote", brace = "{" }, + { name = "quote::quote", brace = "{" }, +] diff --git a/crates/ruma-api-macros/src/api/request.rs b/crates/ruma-api-macros/src/api/request.rs index 1a8ecef7..20c8cc41 100644 --- a/crates/ruma-api-macros/src/api/request.rs +++ b/crates/ruma-api-macros/src/api/request.rs @@ -152,7 +152,7 @@ impl Request { let (derive_deserialize, lifetimes) = if self.has_body_lifetimes() { (TokenStream::new(), self.body_lifetimes()) } else { - (quote!(#serde::Deserialize), TokenStream::new()) + (quote! { #serde::Deserialize }, TokenStream::new()) }; Some((derive_deserialize, quote! { #lifetimes (#field); })) @@ -161,7 +161,7 @@ impl Request { let (derive_deserialize, lifetimes) = if self.has_body_lifetimes() { (TokenStream::new(), self.body_lifetimes()) } else { - (quote!(#serde::Deserialize), TokenStream::new()) + (quote! { #serde::Deserialize }, TokenStream::new()) }; let fields = fields.map(RequestField::field); @@ -187,7 +187,7 @@ impl Request { let (derive_deserialize, lifetime) = if self.has_query_lifetimes() { (TokenStream::new(), self.query_lifetimes()) } else { - (quote!(#serde::Deserialize), TokenStream::new()) + (quote! { #serde::Deserialize }, TokenStream::new()) }; quote! { @@ -205,7 +205,7 @@ impl Request { let (derive_deserialize, lifetime) = if self.has_query_lifetimes() { (TokenStream::new(), self.query_lifetimes()) } else { - (quote!(#serde::Deserialize), TokenStream::new()) + (quote! { #serde::Deserialize }, TokenStream::new()) }; quote! { diff --git a/crates/ruma-api-macros/src/api/request/incoming.rs b/crates/ruma-api-macros/src/api/request/incoming.rs index 70963002..6fd0ce64 100644 --- a/crates/ruma-api-macros/src/api/request/incoming.rs +++ b/crates/ruma-api-macros/src/api/request/incoming.rs @@ -18,8 +18,11 @@ impl Request { let method = &metadata.method; - let incoming_request_type = - if self.contains_lifetimes() { quote!(IncomingRequest) } else { quote!(Request) }; + let incoming_request_type = if self.contains_lifetimes() { + quote! { IncomingRequest } + } else { + quote! { Request } + }; // FIXME: the rest of the field initializer expansions are gated `cfg(...)` // except this one. If we get errors about missing fields in IncomingRequest for @@ -86,7 +89,7 @@ impl Request { }, ) } else if self.has_query_fields() { - let (decls, names) = self.vars(RequestFieldKind::Query, quote!(request_query)); + let (decls, names) = self.vars(RequestFieldKind::Query, quote! { request_query }); let parse = quote! { let request_query: ::Incoming = @@ -212,7 +215,7 @@ impl Request { (parse, quote! { #field_name, }) } else { - self.vars(RequestFieldKind::Body, quote!(request_body)) + self.vars(RequestFieldKind::Body, quote! { request_body }) }; let non_auth_impls = metadata.authentication.iter().filter_map(|auth| { diff --git a/crates/ruma-api-macros/src/api/request/outgoing.rs b/crates/ruma-api-macros/src/api/request/outgoing.rs index b7e587a2..30c87d76 100644 --- a/crates/ruma-api-macros/src/api/request/outgoing.rs +++ b/crates/ruma-api-macros/src/api/request/outgoing.rs @@ -55,7 +55,7 @@ impl Request { let request_query_string = if let Some(field) = self.query_map_field() { let field_name = field.ident.as_ref().expect("expected field to have identifier"); - quote!({ + quote! {{ // This function exists so that the compiler will throw an error when the type of // the field with the query_map attribute doesn't implement // `IntoIterator`. @@ -80,12 +80,12 @@ impl Request { "?{}", #ruma_serde::urlencoded::to_string(request_query)? ) - }) + }} } else if self.has_query_fields() { let request_query_init_fields = - self.struct_init_fields(RequestFieldKind::Query, quote!(self)); + self.struct_init_fields(RequestFieldKind::Query, quote! { self }); - quote!({ + quote! {{ let request_query = RequestQuery { #request_query_init_fields }; @@ -94,7 +94,7 @@ impl Request { "?{}", #ruma_serde::urlencoded::to_string(request_query)? ) - }) + }} } else { quote! { "" } }; @@ -174,7 +174,7 @@ impl Request { field.ident.as_ref().expect("expected field to have an identifier"); quote! { (self.#field_name) } } else { - let initializers = self.struct_init_fields(RequestFieldKind::Body, quote!(self)); + let initializers = self.struct_init_fields(RequestFieldKind::Body, quote! { self }); quote! { { #initializers } } }; diff --git a/crates/ruma-events-macros/src/event_enum.rs b/crates/ruma-events-macros/src/event_enum.rs index ed2df496..af5fbfb8 100644 --- a/crates/ruma-events-macros/src/event_enum.rs +++ b/crates/ruma-events-macros/src/event_enum.rs @@ -127,7 +127,7 @@ fn expand_any_with_deser( events.iter().map(|event| to_event_path(event, &event_struct, ruma_events)).collect(); let variant_decls = variants.iter().map(|v| v.decl()); - let self_variants = variants.iter().map(|v| v.ctor(quote!(Self))); + let self_variants = variants.iter().map(|v| v.ctor(quote! { Self })); let (custom_variant, custom_deserialize) = generate_custom_variant(&event_struct, var, ruma_events); @@ -233,7 +233,7 @@ fn expand_conversion_impl( let sync_struct = kind.to_event_ident(&variation)?; let ident_variants = variants.iter().map(|v| v.match_arm(&ident)); - let self_variants = variants.iter().map(|v| v.ctor(quote!(Self))); + let self_variants = variants.iter().map(|v| v.ctor(quote! { Self })); let redaction = (*kind == EventKind::Message && *var == EventKindVariation::Full).then(|| { @@ -270,7 +270,7 @@ fn expand_conversion_impl( }; let full = kind.to_event_enum_ident(&variation)?; - let self_variants = variants.iter().map(|v| v.match_arm(quote!(Self))); + let self_variants = variants.iter().map(|v| v.match_arm(quote! { Self })); let full_variants = variants.iter().map(|v| v.ctor(&full)); let redaction = @@ -395,8 +395,8 @@ fn expand_content_enum( let attrs = &v.attrs; quote! { #(#attrs)* } }); - let variant_arms = variants.iter().map(|v| v.match_arm(quote!(Self))).collect::>(); - let variant_ctors = variants.iter().map(|v| v.ctor(quote!(Self))); + let variant_arms = variants.iter().map(|v| v.match_arm(quote! { Self })).collect::>(); + let variant_ctors = variants.iter().map(|v| v.ctor(quote! { Self })); let event_content_impl = quote! { #[automatically_derived] @@ -530,7 +530,7 @@ fn expand_redact( _ => return None, }; - let self_variants = variants.iter().map(|v| v.match_arm(quote!(Self))); + let self_variants = variants.iter().map(|v| v.match_arm(quote! { Self })); let redaction_variants = variants.iter().map(|v| v.ctor(&redacted_enum)); let fields = EVENT_FIELDS.iter().map(|(name, has_field)| { @@ -738,7 +738,7 @@ fn accessor_methods( let content_enum = kind.to_content_enum(); - let self_variants: Vec<_> = variants.iter().map(|v| v.match_arm(quote!(Self))).collect(); + let self_variants: Vec<_> = variants.iter().map(|v| v.match_arm(quote! { Self })).collect(); let content_variants: Vec<_> = variants.iter().map(|v| v.ctor(&content_enum)).collect(); let event_type = quote! { @@ -950,7 +950,7 @@ fn generate_accessor( let docs = format!("Returns this event's {} field.", name); let ident = Ident::new(name, Span::call_site()); let field_type = field_return_type(name, var, ruma_events); - let variants = variants.iter().map(|v| v.match_arm(quote!(Self))); + let variants = variants.iter().map(|v| v.match_arm(quote! { Self })); quote! { #[doc = #docs] diff --git a/crates/ruma-events/src/room/message.rs b/crates/ruma-events/src/room/message.rs index fb0852ca..edc97dc5 100644 --- a/crates/ruma-events/src/room/message.rs +++ b/crates/ruma-events/src/room/message.rs @@ -958,6 +958,7 @@ fn get_plain_quote_fallback(original_message: &MessageEvent) -> String { } } +#[allow(clippy::nonstandard_macro_braces)] fn get_html_quote_fallback(original_message: &MessageEvent) -> String { match &original_message.content.msgtype { MessageType::Audio(_) => { diff --git a/crates/ruma-state-res/.clippy.toml b/crates/ruma-state-res/.clippy.toml new file mode 100644 index 00000000..9eb6ca66 --- /dev/null +++ b/crates/ruma-state-res/.clippy.toml @@ -0,0 +1,10 @@ +msrv = "1.50" +disallowed-types = [] +enforced-import-renames = [ { path = "serde_json::Value", rename = "JsonValue" } ] +standard-macro-braces = [ + { name = "btreeset", brace = "[" }, + # The macro calls itself like btreemap!(...) so this triggers for any use + # { name = "btreemap", brace = "{" }, + { name = "hashset", brace = "[" }, + { name = "hashmap", brace = "{" }, +]