# Static rustc_lint::noop_method_call::SUSPICIOUS_DOUBLE_REF_OP

source ·

    pub static SUSPICIOUS_DOUBLE_REF_OP: &Lint

Expand description

The `suspicious_double_ref_op` lint checks for usage of `.clone()`/`.borrow()`/`.deref()` on an `&&T` when `T: !Deref/Borrow/Clone`, which means the call will return the inner `&T`, instead of performing the operation on the underlying `T` and can be confusing.

#### §Example

    struct Foo;
    let foo = &&Foo;
    let clone: &Foo = foo.clone();

{{produces}}

#### §Explanation

Since `Foo` doesn’t implement `Clone`, running `.clone()` only dereferences the double reference, instead of cloning the inner type which should be what was intended.