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::TyEnum(ref id, _) | ty::TyStruct(ref id, _) => has_is_empty_impl(cx, &id.did),
ty::TyArray(..) => true,
ty::TyArray(..) | ty::TyStr => true,
_ => false,
}
}

View file

@ -37,7 +37,8 @@ impl LateLintPass for PanicPass {
match_path(path, &BEGIN_UNWIND),
let ExprLit(ref lit) = params[0].node,
let LitKind::Str(ref string, _) = lit.node,
string.contains('{'),
let Some(par) = string.find('{'),
string[par..].contains('}'),
let Some(sp) = cx.sess().codemap()
.with_expn_info(expr.span.expn_id,
|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()
.skip(ignore_first as usize)
.filter_map(|l| {
if l.len() > 0 {
if l.is_empty() {
None
} else {
// ignore empty lines
Some(l.char_indices()
.find(|&(_, x)| x != ch)
.unwrap_or((l.len(), ch))
.0)
} else {
None
}
})
.min()
@ -399,7 +399,7 @@ fn trim_multiline_inner(s: Cow<str>, ignore_first: bool, ch: char) -> Cow<str> {
Cow::Owned(s.lines()
.enumerate()
.map(|(i, l)| {
if (ignore_first && i == 0) || l.len() == 0 {
if (ignore_first && i == 0) || l.is_empty() {
l
} else {
l.split_at(x).1

View file

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

View file

@ -4,10 +4,14 @@
#[deny(panic_params)]
fn missing() {
panic!("{}"); //~ERROR: You probably are missing some parameter
if true {
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");
}
@ -15,8 +19,18 @@ fn ok_multiple() {
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() {
missing();
ok_sigle();
ok_single();
ok_multiple();
ok_bracket();
}