Skip to content

Commit

Permalink
Add ui test for write_and_append lint
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Dec 12, 2023
1 parent 19f5b85 commit 5accd51
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 0 deletions.
41 changes: 41 additions & 0 deletions tests/ui/ineffective_open_options.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#![warn(clippy::ineffective_open_options)]

use std::fs::OpenOptions;

fn main() {
let file = OpenOptions::new()
.create(true)
//~ ERROR: unnecessary use of `.write(true)`
.append(true)
.open("dump.json")
.unwrap();

let file = OpenOptions::new()
.create(true)
.append(true)
//~ ERROR: unnecessary use of `.write(true)`
.open("dump.json")
.unwrap();

// All the next calls are ok.
let file = OpenOptions::new()
.create(true)
.write(false)
.append(true)
.open("dump.json")
.unwrap();
let file = OpenOptions::new()
.create(true)
.write(true)
.append(false)
.open("dump.json")
.unwrap();
let file = OpenOptions::new()
.create(true)
.write(false)
.append(false)
.open("dump.json")
.unwrap();
let file = OpenOptions::new().create(true).append(true).open("dump.json").unwrap();
let file = OpenOptions::new().create(true).write(true).open("dump.json").unwrap();
}
41 changes: 41 additions & 0 deletions tests/ui/ineffective_open_options.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#![warn(clippy::ineffective_open_options)]

use std::fs::OpenOptions;

fn main() {
let file = OpenOptions::new()
.create(true)
.write(true) //~ ERROR: unnecessary use of `.write(true)`
.append(true)
.open("dump.json")
.unwrap();

let file = OpenOptions::new()
.create(true)
.append(true)
.write(true) //~ ERROR: unnecessary use of `.write(true)`
.open("dump.json")
.unwrap();

// All the next calls are ok.
let file = OpenOptions::new()
.create(true)
.write(false)
.append(true)
.open("dump.json")
.unwrap();
let file = OpenOptions::new()
.create(true)
.write(true)
.append(false)
.open("dump.json")
.unwrap();
let file = OpenOptions::new()
.create(true)
.write(false)
.append(false)
.open("dump.json")
.unwrap();
let file = OpenOptions::new().create(true).append(true).open("dump.json").unwrap();
let file = OpenOptions::new().create(true).write(true).open("dump.json").unwrap();
}
17 changes: 17 additions & 0 deletions tests/ui/ineffective_open_options.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
error: unnecessary use of `.write(true)` because there is `.append(true)`
--> $DIR/ineffective_open_options.rs:8:9
|
LL | .write(true)
| ^^^^^^^^^^^^ help: remove `.write(true)`
|
= note: `-D clippy::ineffective-open-options` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::ineffective_open_options)]`

error: unnecessary use of `.write(true)` because there is `.append(true)`
--> $DIR/ineffective_open_options.rs:16:9
|
LL | .write(true)
| ^^^^^^^^^^^^ help: remove `.write(true)`

error: aborting due to 2 previous errors

0 comments on commit 5accd51

Please sign in to comment.