use rustc::middle::ty::{TypeAndMut, TypeVariants, MethodCall, TyS};
use syntax::ptr::P;
+/// **What it does:** This lint detects giving a mutable reference to a function that only requires an immutable reference.
+///
+/// **Why is this bad?** The immutable reference rules out all other references to the value. Also the code misleads about the intent of the call site.
+///
+/// **Known problems:** None
+///
+/// **Example** `my_vec.push(&mut value)`
declare_lint! {
pub UNNECESSARY_MUT_PASSED,
Warn,