From c5169038d9d3b690645409df08b45752e64add0d Mon Sep 17 00:00:00 2001 From: p0lunin <dmytro.polunin@gmail.com> Date: Sat, 25 Jan 2020 22:56:09 +0200 Subject: [PATCH] fixed compilation errors and warnings --- teloxide-macros/src/attr.rs | 2 +- teloxide-macros/src/command.rs | 2 +- teloxide-macros/src/enum_attributes.rs | 3 +-- teloxide-macros/src/lib.rs | 14 ++++++-------- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/teloxide-macros/src/attr.rs b/teloxide-macros/src/attr.rs index 89a5b06e..281baa37 100644 --- a/teloxide-macros/src/attr.rs +++ b/teloxide-macros/src/attr.rs @@ -1,5 +1,5 @@ use syn::parse::{Parse, ParseStream}; -use syn::{Attribute, LitStr, Token}; +use syn::{LitStr, Token}; pub enum BotCommandAttribute { diff --git a/teloxide-macros/src/command.rs b/teloxide-macros/src/command.rs index 5e55093f..c362faa4 100644 --- a/teloxide-macros/src/command.rs +++ b/teloxide-macros/src/command.rs @@ -1,5 +1,4 @@ use crate::attr::{Attr, BotCommandAttribute}; -use std::convert::TryFrom; use crate::rename_rules::rename_by_rule; pub struct Command { @@ -47,6 +46,7 @@ fn parse_attrs(attrs: &[Attr]) -> Result<CommandAttrs, String> { BotCommandAttribute::Prefix => prefix = Some(attr.value()), BotCommandAttribute::Description => description = Some(attr.value()), BotCommandAttribute::RenameRule => rename_rule = Some(attr.value()), + #[allow(unreachable_patterns)] _ => return Err(format!("unexpected attribute")), } } diff --git a/teloxide-macros/src/enum_attributes.rs b/teloxide-macros/src/enum_attributes.rs index 96373210..da290ca7 100644 --- a/teloxide-macros/src/enum_attributes.rs +++ b/teloxide-macros/src/enum_attributes.rs @@ -1,6 +1,4 @@ use crate::attr::{Attr, BotCommandAttribute}; -use std::convert::TryFrom; -use crate::rename_rules::rename_by_rule; pub struct CommandEnum { pub prefix: Option<String>, @@ -45,6 +43,7 @@ fn parse_attrs(attrs: &[Attr]) -> Result<CommandAttrs, String> { BotCommandAttribute::Prefix => prefix = Some(attr.value()), BotCommandAttribute::Description => description = Some(attr.value()), BotCommandAttribute::RenameRule => rename_rule = Some(attr.value()), + #[allow(unreachable_patterns)] _ => return Err(format!("unexpected attribute")), } } diff --git a/teloxide-macros/src/lib.rs b/teloxide-macros/src/lib.rs index b4a822fa..78cba883 100644 --- a/teloxide-macros/src/lib.rs +++ b/teloxide-macros/src/lib.rs @@ -7,17 +7,15 @@ extern crate proc_macro; extern crate syn; use proc_macro::TokenStream; use quote::{quote, ToTokens}; -use syn::{DeriveInput, parse_macro_input, Token}; -use syn::parse::{Parse, ParseStream}; +use syn::{DeriveInput, parse_macro_input}; use crate::command::Command; -use std::convert::TryFrom; use crate::attr::{Attr, VecAttrs}; use crate::enum_attributes::CommandEnum; use crate::rename_rules::rename_by_rule; macro_rules! get_or_return { - ($some:tt) => { - match $some { + ($($some:tt)*) => { + match $($some)* { Ok(elem) => elem, Err(e) => return e }; @@ -30,7 +28,7 @@ pub fn derive_telegram_command_enum(tokens: TokenStream) -> TokenStream { let data_enum: &syn::DataEnum = get_or_return!(get_enum_data(&input)); - let mut enum_attrs: Vec<Attr> = get_or_return!(parse_attributes(&input.attrs)); + let enum_attrs: Vec<Attr> = get_or_return!(parse_attributes(&input.attrs)); let command_enum = match CommandEnum::try_from(enum_attrs.as_slice()) { Ok(command_enum) => command_enum, @@ -85,7 +83,7 @@ pub fn derive_telegram_command_enum(tokens: TokenStream) -> TokenStream { let variant_str2 = variant_str1.clone(); let variant_description = variant_infos.iter().map(|info| info.description.as_ref().map(String::as_str).unwrap_or("")); - let ident = input.ident; + let ident = &input.ident; let expanded = quote! { impl BotCommand for #ident { @@ -117,7 +115,7 @@ fn get_enum_data(input: &DeriveInput) -> Result<&syn::DataEnum, TokenStream> { fn parse_attributes(input: &Vec<syn::Attribute>) -> Result<Vec<Attr>, TokenStream> { let mut enum_attrs = Vec::new(); - for attr in &input.attrs { + for attr in input.iter() { match attr.parse_args::<VecAttrs>() { Ok(mut attrs_) => { enum_attrs.append(attrs_.data.as_mut());