Check for word beginning in stutter lint

This commit is contained in:
Lukas Stevens 2017-11-26 18:36:12 +01:00
parent 17e322bf29
commit c22455cb9e

View File

@ -264,8 +264,17 @@ impl EarlyLintPass for EnumVariantNames {
let matching = partial_match(mod_camel, &item_camel);
let rmatching = partial_rmatch(mod_camel, &item_camel);
let nchars = mod_camel.chars().count();
let is_word_beginning = |c: char| {
c == '_' || c.is_uppercase() || c.is_numeric()
};
if matching == nchars {
span_lint(cx, STUTTER, item.span, "item name starts with its containing module's name");
match item_camel.chars().nth(nchars) {
Some(c) if is_word_beginning(c) =>
span_lint(cx, STUTTER, item.span, "item name starts with its containing module's name"),
_ => ()
}
}
if rmatching == nchars {
span_lint(cx, STUTTER, item.span, "item name ends with its containing module's name");