Rustup to *1.10.0-nightly (764ef92ae 2016-05-19)*

This commit is contained in:
mcarton 2016-05-20 19:18:32 +02:00
parent 2a5416d662
commit 6dd608e53e
No known key found for this signature in database
GPG Key ID: 5E427C794CBA45E8
4 changed files with 15 additions and 12 deletions

View File

@ -511,7 +511,7 @@ fn lint_or_fun_call(cx: &LateContext, expr: &hir::Expr, name: &str, args: &[P<hi
return;
}
}
// (path, fn_has_argument, methods)
// (path, fn_has_argument, methods, suffix)
let know_types: &[(&[_], _, &[_], _)] = &[(&paths::BTREEMAP_ENTRY, false, &["or_insert"], "with"),
(&paths::HASHMAP_ENTRY, false, &["or_insert"], "with"),
(&paths::OPTION,

View File

@ -38,17 +38,19 @@ impl LateLintPass for UselessVec {
let TypeVariants::TySlice(..) = ty.ty.sty,
let ExprAddrOf(_, ref addressee) = expr.node,
], {
check_vec_macro(cx, expr, addressee);
check_vec_macro(cx, addressee, expr.span);
}}
// search for `for _ in vec![…]`
if let Some((_, arg, _)) = recover_for_loop(expr) {
check_vec_macro(cx, arg, arg);
// report the error around the `vec!` not inside `<std macros>:`
let span = cx.sess().codemap().source_callsite(arg.span);
check_vec_macro(cx, arg, span);
}
}
}
fn check_vec_macro(cx: &LateContext, expr: &Expr, vec: &Expr) {
fn check_vec_macro(cx: &LateContext, vec: &Expr, span: Span) {
if let Some(vec_args) = unexpand_vec(cx, vec) {
let snippet = match vec_args {
VecArgs::Repeat(elem, len) => {
@ -69,8 +71,8 @@ fn check_vec_macro(cx: &LateContext, expr: &Expr, vec: &Expr) {
}
};
span_lint_and_then(cx, USELESS_VEC, expr.span, "useless use of `vec!`", |db| {
db.span_suggestion(expr.span, "you can use a slice directly", snippet);
span_lint_and_then(cx, USELESS_VEC, span, "useless use of `vec!`", |db| {
db.span_suggestion(span, "you can use a slice directly", snippet);
});
}
}

View File

@ -288,7 +288,7 @@ fn or_fun_call() {
with_vec.unwrap_or(vec![]);
//~^ERROR use of `unwrap_or`
//~|HELP try this
//~|SUGGESTION with_vec.unwrap_or_else(|| vec![]);
// FIXME #944: ~|SUGGESTION with_vec.unwrap_or_else(|| vec![]);
let without_default = Some(Foo);
without_default.unwrap_or(Foo::new());

View File

@ -18,6 +18,7 @@ fn less_fun(x : *mut *mut u32) {
macro_rules! mut_ptr {
($p:expr) => { &mut $p }
//~^ ERROR generally you want to avoid `&mut &mut
}
#[deny(mut_mut)]
@ -30,12 +31,12 @@ fn main() {
if fun(x) {
let y : &mut &mut &mut u32 = &mut &mut &mut 2;
//~^ ERROR generally you want to avoid `&mut &mut
//~^^ ERROR generally you want to avoid `&mut &mut
//~^^^ ERROR generally you want to avoid `&mut &mut
//~^^^^ ERROR generally you want to avoid `&mut &mut
//~^ ERROR generally you want to avoid `&mut &mut
//~| ERROR generally you want to avoid `&mut &mut
//~| ERROR generally you want to avoid `&mut &mut
//~| ERROR generally you want to avoid `&mut &mut
***y + **x;
}
let mut z = mut_ptr!(&mut 3u32); //~ERROR generally you want to avoid `&mut &mut
let mut z = mut_ptr!(&mut 3u32); //~ NOTE in this expansion of mut_ptr!
}