Merge pull request #760 from mcarton/small-fix

Small fix × 2
This commit is contained in:
llogiq 2016-03-12 22:36:45 +01:00
commit 25de6a1fd5
5 changed files with 30 additions and 9 deletions

View File

@ -198,7 +198,7 @@ fn has_is_empty(cx: &LateContext, expr: &Expr) -> bool {
} }
ty::TyProjection(_) => ty.ty_to_def_id().map_or(false, |id| has_is_empty_impl(cx, &id)), ty::TyProjection(_) => ty.ty_to_def_id().map_or(false, |id| has_is_empty_impl(cx, &id)),
ty::TyEnum(ref id, _) | ty::TyStruct(ref id, _) => has_is_empty_impl(cx, &id.did), ty::TyEnum(ref id, _) | ty::TyStruct(ref id, _) => has_is_empty_impl(cx, &id.did),
ty::TyArray(..) => true, ty::TyArray(..) | ty::TyStr => true,
_ => false, _ => false,
} }
} }

View File

@ -37,7 +37,8 @@ impl LateLintPass for PanicPass {
match_path(path, &BEGIN_UNWIND), match_path(path, &BEGIN_UNWIND),
let ExprLit(ref lit) = params[0].node, let ExprLit(ref lit) = params[0].node,
let LitKind::Str(ref string, _) = lit.node, let LitKind::Str(ref string, _) = lit.node,
string.contains('{'), let Some(par) = string.find('{'),
string[par..].contains('}'),
let Some(sp) = cx.sess().codemap() let Some(sp) = cx.sess().codemap()
.with_expn_info(expr.span.expn_id, .with_expn_info(expr.span.expn_id,
|info| info.map(|i| i.call_site)) |info| info.map(|i| i.call_site))

View File

@ -383,14 +383,14 @@ fn trim_multiline_inner(s: Cow<str>, ignore_first: bool, ch: char) -> Cow<str> {
let x = s.lines() let x = s.lines()
.skip(ignore_first as usize) .skip(ignore_first as usize)
.filter_map(|l| { .filter_map(|l| {
if l.len() > 0 { if l.is_empty() {
None
} else {
// ignore empty lines // ignore empty lines
Some(l.char_indices() Some(l.char_indices()
.find(|&(_, x)| x != ch) .find(|&(_, x)| x != ch)
.unwrap_or((l.len(), ch)) .unwrap_or((l.len(), ch))
.0) .0)
} else {
None
} }
}) })
.min() .min()
@ -399,7 +399,7 @@ fn trim_multiline_inner(s: Cow<str>, ignore_first: bool, ch: char) -> Cow<str> {
Cow::Owned(s.lines() Cow::Owned(s.lines()
.enumerate() .enumerate()
.map(|(i, l)| { .map(|(i, l)| {
if (ignore_first && i == 0) || l.len() == 0 { if (ignore_first && i == 0) || l.is_empty() {
l l
} else { } else {
l.split_at(x).1 l.split_at(x).1

View File

@ -76,6 +76,12 @@ fn main() {
println!("This should not happen!"); println!("This should not happen!");
} }
if "".len() == 0 {
//~^ERROR length comparison to zero
//~|HELP consider using `is_empty`
//~|SUGGESTION "".is_empty()
}
let y = One; let y = One;
if y.len() == 0 { //no error because One does not have .is_empty() if y.len() == 0 { //no error because One does not have .is_empty()
println!("This should not happen either!"); println!("This should not happen either!");

View File

@ -4,10 +4,14 @@
#[deny(panic_params)] #[deny(panic_params)]
fn missing() { fn missing() {
if true {
panic!("{}"); //~ERROR: You probably are missing some parameter panic!("{}"); //~ERROR: You probably are missing some parameter
} else {
panic!("{:?}"); //~ERROR: You probably are missing some parameter
}
} }
fn ok_sigle() { fn ok_single() {
panic!("foo bar"); panic!("foo bar");
} }
@ -15,8 +19,18 @@ fn ok_multiple() {
panic!("{}", "This is {ok}"); panic!("{}", "This is {ok}");
} }
fn ok_bracket() {
// the match is just here because of #759, it serves no other purpose for the lint
match 42 {
1337 => panic!("{so is this"),
666 => panic!("so is this}"),
_ => panic!("}so is that{"),
}
}
fn main() { fn main() {
missing(); missing();
ok_sigle(); ok_single();
ok_multiple(); ok_multiple();
ok_bracket();
} }