Implementation of tool lints

This commit is contained in:
flip1995 2018-07-03 13:50:48 +02:00
parent ed29e86c39
commit dddb8d2eba
No known key found for this signature in database
GPG key ID: 9F184E1164831181
4 changed files with 37 additions and 0 deletions

View file

@ -90,6 +90,7 @@ pub fn is_known(attr: &Attribute) -> bool {
}
const RUST_KNOWN_TOOL: &[&str] = &["clippy", "rustfmt"];
const RUST_KNOWN_LINT_TOOL: &[&str] = &["clippy"];
pub fn is_known_tool(attr: &Attribute) -> bool {
let tool_name =
@ -97,6 +98,12 @@ pub fn is_known_tool(attr: &Attribute) -> bool {
RUST_KNOWN_TOOL.contains(&tool_name.as_str().as_ref())
}
pub fn is_known_lint_tool(m_item: &MetaItem) -> bool {
let tool_name =
m_item.ident.segments.iter().next().expect("empty path in meta item").ident.name;
RUST_KNOWN_LINT_TOOL.contains(&tool_name.as_str().as_ref())
}
impl NestedMetaItem {
/// Returns the MetaItem if self is a NestedMetaItemKind::MetaItem.
pub fn meta_item(&self) -> Option<&MetaItem> {
@ -290,6 +297,10 @@ impl MetaItem {
pub fn is_meta_item_list(&self) -> bool {
self.meta_item_list().is_some()
}
pub fn is_scoped(&self) -> bool {
self.ident.segments.len() > 1
}
}
impl Attribute {