2020-03-04 20:13:57 -06:00
|
|
|
#![warn(clippy::verbose_file_reads)]
|
|
|
|
use std::env::temp_dir;
|
|
|
|
use std::fs::File;
|
|
|
|
use std::io::Read;
|
|
|
|
|
|
|
|
struct Struct;
|
|
|
|
// To make sure we only warn on File::{read_to_end, read_to_string} calls
|
|
|
|
impl Struct {
|
|
|
|
pub fn read_to_end(&self) {}
|
|
|
|
|
|
|
|
pub fn read_to_string(&self) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() -> std::io::Result<()> {
|
2020-03-10 04:41:24 -05:00
|
|
|
let path = "foo.txt";
|
2020-03-04 20:13:57 -06:00
|
|
|
// Lint shouldn't catch this
|
|
|
|
let s = Struct;
|
|
|
|
s.read_to_end();
|
|
|
|
s.read_to_string();
|
|
|
|
// Should catch this
|
2022-07-08 04:30:17 -05:00
|
|
|
let mut f = File::open(path)?;
|
2020-03-04 20:13:57 -06:00
|
|
|
let mut buffer = Vec::new();
|
|
|
|
f.read_to_end(&mut buffer)?;
|
2023-07-28 14:35:48 -05:00
|
|
|
//~^ ERROR: use of `File::read_to_end`
|
2020-03-04 20:13:57 -06:00
|
|
|
// ...and this
|
|
|
|
let mut string_buffer = String::new();
|
|
|
|
f.read_to_string(&mut string_buffer)?;
|
2023-07-28 14:35:48 -05:00
|
|
|
//~^ ERROR: use of `File::read_to_string`
|
2020-03-04 20:13:57 -06:00
|
|
|
Ok(())
|
|
|
|
}
|