use syntax::ast::*;
use syntax::attr;
use syntax::source_map::Span;
-use syntax::symbol::LocalInternedString;
+use syntax::symbol::SymbolStr;
use syntax::visit::{walk_block, walk_expr, walk_pat, Visitor};
declare_clippy_lint! {
impl_lint_pass!(NonExpressiveNames => [SIMILAR_NAMES, MANY_SINGLE_CHAR_NAMES, JUST_UNDERSCORES_AND_DIGITS]);
struct ExistingName {
- interned: LocalInternedString,
+ interned: SymbolStr,
span: Span,
len: usize,
whitelist: &'static [&'static str],
}
}
+#[must_use]
fn get_whitelist(interned_name: &str) -> Option<&'static [&'static str]> {
for &allow in WHITELIST {
if whitelisted(interned_name, allow) {
None
}
+#[must_use]
fn whitelisted(interned_name: &str, list: &[&str]) -> bool {
list.iter()
.any(|&name| interned_name.starts_with(name) || interned_name.ends_with(name))
impl EarlyLintPass for NonExpressiveNames {
fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) {
- if let ItemKind::Fn(ref decl, _, _, ref blk) = item.kind {
- do_check(self, cx, &item.attrs, decl, blk);
+ if let ItemKind::Fn(ref sig, _, ref blk) = item.kind {
+ do_check(self, cx, &item.attrs, &sig.decl, blk);
}
}
}
/// Precondition: `a_name.chars().count() < b_name.chars().count()`.
+#[must_use]
fn levenstein_not_1(a_name: &str, b_name: &str) -> bool {
debug_assert!(a_name.chars().count() < b_name.chars().count());
let mut a_chars = a_name.chars();