Clippy lints / Suspicious
Clippy lint · Suspicious · checked with Clippy 0.1.99
clippy::ineffective_open_options: Checks if both .write(true) and .append(true) methods are called on a same OpenOptions
What it meansChecks if both .write(true) and .append(true) methods are called on a same OpenOptions. It is in the suspicious group and warns by default.
Does it matter?
.append(true) already enables write(true), making this one superfluous.
Code that is most likely wrong or useless. Warns by default.
How to fix it
Clippy can fix this one for you: run cargo clippy --fix (add --allow-dirty if you have uncommitted changes). Review the diff before you commit.
Flagged
let _ = OpenOptions::new()
.write(true)
.append(true)
.create(true)
.open("file.json");
Write this instead
let _ = OpenOptions::new()
.append(true)
.create(true)
.open("file.json");
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::ineffective_open_options)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
ineffective_open_options = "allow"One run
cargo clippy -- -A clippy::ineffective-open-optionsThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks if both .write(true) and .append(true) methods are called
on a same OpenOptions.
Why is this bad?
.append(true) already enables write(true), making this one
superfluous.
Example
let _ = OpenOptions::new()
.write(true)
.append(true)
.create(true)
.open("file.json");
Use instead:
let _ = OpenOptions::new()
.append(true)
.create(true)
.open("file.json");
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- four_forward_slashesthis item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't
- from_raw_with_void_ptrChecks if we’re passing a c_void raw pointer to {Box,Rc,Arc,Weak}::from_raw(_)
- incompatible_msrvThis lint checks that no function newer than the defined MSRV (minimum supported rust version) is used in the crate
- infallible_try_frominfallible TryFrom impl; consider implementing From instead
- iter_out_of_boundsthis `.take()` call takes more items than the iterator will produce
- join_absolute_pathsChecks for calls to Path::join that start with a path separator (\\ or /)
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::four_forward_slashesthis item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren'tRead it next →Did this answer your question?