@@ -24,7 +24,7 @@ fn try_cfg(introducer: &str, args: TokenStream, input: TokenStream) -> Result<To
2424 token:: parse_end ( full_args) ?;
2525
2626 if expr. eval ( crate :: RUSTVERSION ) {
27- Ok ( input)
27+ Ok ( allow_incompatible_msrv ( input) )
2828 } else {
2929 Ok ( TokenStream :: new ( ) )
3030 }
@@ -35,11 +35,11 @@ pub fn try_attr(args: attr::Args, input: TokenStream) -> Result<TokenStream> {
3535 return Ok ( input) ;
3636 }
3737
38- match args. then {
39- Then :: Const ( const_token) => constfn:: insert_const ( input, const_token) ,
38+ let output = match args. then {
39+ Then :: Const ( const_token) => constfn:: insert_const ( input, const_token) ? ,
4040 Then :: Attribute ( then) => {
41- // #[cfg_attr(all(), #then)]
42- Ok ( TokenStream :: from_iter (
41+ TokenStream :: from_iter (
42+ // #[cfg_attr(all(), #then)]
4343 vec ! [
4444 TokenTree :: Punct ( Punct :: new( '#' , Spacing :: Alone ) ) ,
4545 TokenTree :: Group ( Group :: new(
@@ -66,7 +66,35 @@ pub fn try_attr(args: attr::Args, input: TokenStream) -> Result<TokenStream> {
6666 ]
6767 . into_iter ( )
6868 . chain ( input) ,
69- ) )
69+ )
7070 }
71- }
71+ } ;
72+
73+ Ok ( allow_incompatible_msrv ( output) )
74+ }
75+
76+ fn allow_incompatible_msrv ( input : TokenStream ) -> TokenStream {
77+ TokenStream :: from_iter (
78+ // #[allow(clippy::incompatible_msrv)]
79+ vec ! [
80+ TokenTree :: Punct ( Punct :: new( '#' , Spacing :: Alone ) ) ,
81+ TokenTree :: Group ( Group :: new(
82+ Delimiter :: Bracket ,
83+ TokenStream :: from_iter( vec![
84+ TokenTree :: Ident ( Ident :: new( "allow" , Span :: call_site( ) ) ) ,
85+ TokenTree :: Group ( Group :: new(
86+ Delimiter :: Parenthesis ,
87+ TokenStream :: from_iter( vec![
88+ TokenTree :: Ident ( Ident :: new( "clippy" , Span :: call_site( ) ) ) ,
89+ TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Joint ) ) ,
90+ TokenTree :: Punct ( Punct :: new( ':' , Spacing :: Alone ) ) ,
91+ TokenTree :: Ident ( Ident :: new( "incompatible_msrv" , Span :: call_site( ) ) ) ,
92+ ] ) ,
93+ ) ) ,
94+ ] ) ,
95+ ) ) ,
96+ ]
97+ . into_iter ( )
98+ . chain ( input) ,
99+ )
72100}
0 commit comments