### What it does This lint catches reads into a zero-length `Vec`. Especially in the case of a call to `with_capacity`, this lint warns that read gets the number of bytes from the `Vec`'s length, not its capacity. ### Why is this bad? Reading zero bytes is almost certainly not the intended behavior. ### Known problems In theory, a very unusual read implementation could assign some semantic meaning to zero-byte reads. But it seems exceptionally unlikely that code intending to do a zero-byte read would allocate a `Vec` for it. ### Example ``` use std::io; fn foo(mut f: F) { let mut data = Vec::with_capacity(100); f.read(&mut data).unwrap(); } ``` Use instead: ``` use std::io; fn foo(mut f: F) { let mut data = Vec::with_capacity(100); data.resize(100, 0); f.read(&mut data).unwrap(); } ```