mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-02 11:44:28 +00:00
Rustup to *1.10.0-nightly (764ef92ae
2016-05-19)*
This commit is contained in:
parent
2a5416d662
commit
6dd608e53e
@ -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,
|
||||
|
12
src/vec.rs
12
src/vec.rs
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -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());
|
||||
|
@ -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!
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user