if is_named_self(i, "len") {
let ty = cx.tcx.node_id_to_type(item.id);
- let s = i.span;
span_lint(cx,
LEN_WITHOUT_IS_EMPTY,
- Span {
- lo: s.lo,
- hi: s.lo,
- expn_id: s.expn_id,
- },
+ i.span,
&format!("item `{}` has a `.len(_: &Self)` method, but no `.is_empty(_: &Self)` method. \
Consider adding one",
ty));
#[allow(cast_possible_truncation)]
fn str_span(base: Span, s: &str, c: usize) -> Span {
- let lo = match s.char_indices().nth(c) {
- Some((b, _)) => base.lo + BytePos(b as u32),
- _ => base.hi,
- };
- Span {
- lo: lo,
- hi: lo,
- ..base
+ let mut si = s.char_indices().skip(c);
+
+ match (si.next(), si.next()) {
+ (Some((l, _)), Some((h, _))) => {
+ Span {
+ lo: base.lo + BytePos(l as u32),
+ hi: base.lo + BytePos(h as u32),
+ ..base
+ }
+ }
+ _ => base,
}
}
for (_, v) in &m {
//~^ you seem to want to iterate on a map's values
//~| HELP use the corresponding method
- //~| SUGGESTION for v in &m.values()
+ //~| SUGGESTION for v in m.values()
let _v = v;
}
match v {
//~^ERROR add `&` to all patterns
//~|HELP instead of
- //~|SUGGESTION `match *v { .. }`
+ //~|SUGGESTION match *v { .. }
&Some(v) => println!("{:?}", v),
&None => println!("none"),
}
match tup {
//~^ERROR add `&` to all patterns
//~|HELP instead of
- //~|SUGGESTION `match *tup { .. }`
+ //~|SUGGESTION match *tup { .. }
&(v, 1) => println!("{}", v),
_ => println!("none"),
}
match &w {
//~^ERROR add `&` to both
//~|HELP try
- //~|SUGGESTION `match w { .. }`
+ //~|SUGGESTION match w { .. }
&Some(v) => println!("{:?}", v),
&None => println!("none"),
}
if let &None = a {
//~^ERROR add `&` to all patterns
//~|HELP instead of
- //~|SUGGESTION `if let ... = *a { .. }`
+ //~|SUGGESTION if let .. = *a { .. }
println!("none");
}
if let &None = &b {
//~^ERROR add `&` to both
//~|HELP try
- //~|SUGGESTION `if let ... = b { .. }`
+ //~|SUGGESTION if let .. = b { .. }
println!("none");
}
}
//~^ERROR: regex syntax error: empty alternate
let wrong_char_ranice = Regex::new("[z-a]");
//~^ERROR: regex syntax error: invalid character class range
+ let some_unicode = Regex::new("[é-è]");
+ //~^ERROR: regex syntax error: invalid character class range
let some_regex = Regex::new(OPENING_PAREN);
//~^ERROR: regex syntax error on position 0: unclosed