about summary refs log tree commit diff
path: root/src/libsyntax/attr
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/attr')
-rw-r--r--src/libsyntax/attr/mod.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs
index 4e27d6c1525..f8db62083c7 100644
--- a/src/libsyntax/attr/mod.rs
+++ b/src/libsyntax/attr/mod.rs
@@ -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 {