diff --git a/derive/src/endpoint.rs b/derive/src/endpoint.rs index a70145b..1c8d15d 100644 --- a/derive/src/endpoint.rs +++ b/derive/src/endpoint.rs @@ -254,6 +254,8 @@ pub fn endpoint_ident(fn_ident: &Ident) -> Ident { format_ident!("{}___gotham_restful_endpoint", fn_ident) } +// clippy doesn't realize that vectors can be used in closures +#[cfg_attr(feature = "cargo-clippy", allow(clippy::needless_collect))] fn expand_endpoint_type(ty: EndpointType, attrs: AttributeArgs, fun: &ItemFn) -> Result { // reject unsafe functions if let Some(unsafety) = fun.sig.unsafety { diff --git a/derive/src/lib.rs b/derive/src/lib.rs index 15f13cd..f42e50f 100644 --- a/derive/src/lib.rs +++ b/derive/src/lib.rs @@ -1,3 +1,7 @@ +#![warn(missing_debug_implementations, rust_2018_idioms)] +#![deny(broken_intra_doc_links)] +#![forbid(unsafe_code)] + use proc_macro::TokenStream; use proc_macro2::TokenStream as TokenStream2; use quote::quote; diff --git a/derive/src/private_openapi_trait.rs b/derive/src/private_openapi_trait.rs index 1486119..d590c7e 100644 --- a/derive/src/private_openapi_trait.rs +++ b/derive/src/private_openapi_trait.rs @@ -86,6 +86,9 @@ pub(crate) fn expand_private_openapi_trait(mut attrs: AttributeArgs, tr8: ItemTr let attrs = TraitItemAttrs::parse(method.attrs)?; method.attrs = attrs.other_attrs; for bound in attrs.non_openapi_bound { + // we compare two incompatible types using their `Display` implementation + // this triggers a false positive in clippy + #[cfg_attr(feature = "cargo-clippy", allow(clippy::cmp_owned))] method .sig .generics @@ -129,6 +132,9 @@ pub(crate) fn expand_private_openapi_trait(mut attrs: AttributeArgs, tr8: ItemTr let attrs = TraitItemAttrs::parse(method.attrs)?; method.attrs = attrs.other_attrs; for bound in attrs.openapi_bound { + // we compare two incompatible types using their `Display` implementation + // this triggers a false positive in clippy + #[cfg_attr(feature = "cargo-clippy", allow(clippy::cmp_owned))] method .sig .generics diff --git a/derive/src/request_body.rs b/derive/src/request_body.rs index c469a79..077d105 100644 --- a/derive/src/request_body.rs +++ b/derive/src/request_body.rs @@ -12,7 +12,7 @@ use syn::{ struct MimeList(Punctuated); impl Parse for MimeList { - fn parse(input: ParseStream) -> Result { + fn parse(input: ParseStream<'_>) -> Result { let list = Punctuated::parse_separated_nonempty(&input)?; Ok(Self(list)) } diff --git a/derive/src/resource.rs b/derive/src/resource.rs index c2a2e01..8e30275 100644 --- a/derive/src/resource.rs +++ b/derive/src/resource.rs @@ -15,7 +15,7 @@ use syn::{ struct MethodList(Punctuated); impl Parse for MethodList { - fn parse(input: ParseStream) -> Result { + fn parse(input: ParseStream<'_>) -> Result { let content; let _paren = parenthesized!(content in input); let list = Punctuated::parse_separated_nonempty(&content)?; diff --git a/src/cors.rs b/src/cors.rs index b563ea5..43ff43b 100644 --- a/src/cors.rs +++ b/src/cors.rs @@ -112,6 +112,7 @@ To change settings, you need to put this type into gotham's [State]: ```rust,no_run # use gotham::{router::builder::*, pipeline::{new_pipeline, single::single_pipeline}, state::State}; # use gotham_restful::{*, cors::Origin}; +# #[cfg_attr(feature = "cargo-clippy", allow(clippy::needless_doctest_main))] fn main() { let cors = CorsConfig { origin: Origin::Star, diff --git a/src/lib.rs b/src/lib.rs index 7f9a234..079f208 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,12 +1,8 @@ -#![allow(clippy::tabs_in_doc_comments)] -#![warn( - missing_debug_implementations, - rust_2018_idioms, - clippy::wildcard_imports, - clippy::redundant_closure_for_method_calls -)] +#![warn(missing_debug_implementations, rust_2018_idioms)] #![deny(broken_intra_doc_links)] #![forbid(unsafe_code)] +// can we have a lint for spaces in doc comments please? +#![cfg_attr(feature = "cargo-clippy", allow(clippy::tabs_in_doc_comments))] /*! This crate is an extension to the popular [gotham web framework][gotham] for Rust. It allows you to create resources with assigned endpoints that aim to be a more convenient way of creating handlers