rustc_attr_parsing/attributes/
confusables.rs

1//! Parsing and validation of builtin attributes
2
3use rustc_ast::MetaItemInner;
4use rustc_ast::attr::AttributeExt;
5use rustc_span::Symbol;
6
7/// Read the content of a `rustc_confusables` attribute, and return the list of candidate names.
8pub fn parse_confusables(attr: &impl AttributeExt) -> Option<Vec<Symbol>> {
9    let metas = attr.meta_item_list()?;
10
11    let mut candidates = Vec::new();
12
13    for meta in metas {
14        let MetaItemInner::Lit(meta_lit) = meta else {
15            return None;
16        };
17        candidates.push(meta_lit.symbol);
18    }
19
20    Some(candidates)
21}