about summary refs log tree commit diff
diff options
context:
space:
mode:
authoratwam <wam@atwam.com>2023-10-10 13:30:24 +0100
committeratwam <wam@atwam.com>2024-01-15 17:15:08 +0000
commit2ec8729962aae2fc3c72f388a8249e13f241bc20 (patch)
treecbb34d734609431e14b45b5a5d02c83a4aea889e
parent6fb471d646045ce7c3e81483bc1db2cbb4c9f69c (diff)
downloadrust-2ec8729962aae2fc3c72f388a8249e13f241bc20.tar.gz
rust-2ec8729962aae2fc3c72f388a8249e13f241bc20.zip
PR Fixes
-rw-r--r--clippy_lints/src/methods/open_options.rs37
-rw-r--r--tests/ui/open_options.stderr12
2 files changed, 24 insertions, 25 deletions
diff --git a/clippy_lints/src/methods/open_options.rs b/clippy_lints/src/methods/open_options.rs
index c54a7506836..c006ea192ee 100644
--- a/clippy_lints/src/methods/open_options.rs
+++ b/clippy_lints/src/methods/open_options.rs
@@ -1,6 +1,7 @@
 use rustc_data_structures::fx::FxHashMap;
 
 use clippy_utils::diagnostics::{span_lint, span_lint_and_then};
+use clippy_utils::paths;
 use clippy_utils::ty::is_type_diagnostic_item;
 use rustc_ast::ast::LitKind;
 use rustc_hir::{Expr, ExprKind};
@@ -117,11 +118,10 @@ fn check_open_options(cx: &LateContext<'_>, settings: &[(OpenOption, Argument, S
         }
     }
 
-    if_chain! {
-        if let Some((Argument::Set(true), _)) = options.get(&OpenOption::Read);
-        if let Some((Argument::Set(true), _)) = options.get(&OpenOption::Truncate);
-        if let None | Some((Argument::Set(false), _)) = options.get(&OpenOption::Write);
-        then {
+    if let Some((Argument::Set(true), _)) = options.get(&OpenOption::Read)
+        && let Some((Argument::Set(true), _)) = options.get(&OpenOption::Truncate)
+        && let None | Some((Argument::Set(false), _)) = options.get(&OpenOption::Write)
+        {
             span_lint(
                 cx,
                 NONSENSICAL_OPEN_OPTIONS,
@@ -129,37 +129,28 @@ fn check_open_options(cx: &LateContext<'_>, settings: &[(OpenOption, Argument, S
                 "file opened with `truncate` and `read`",
             );
         }
-    }
 
-    if_chain! {
-        if let Some((Argument::Set(true), _)) = options.get(&OpenOption::Append);
-        if let Some((Argument::Set(true), _)) = options.get(&OpenOption::Truncate);
-        if let None | Some((Argument::Set(false), _)) = options.get(&OpenOption::Write);
-        then {
+    if let Some((Argument::Set(true), _)) = options.get(&OpenOption::Append)
+        && let Some((Argument::Set(true), _)) = options.get(&OpenOption::Truncate)
+        {
             span_lint(
                 cx,
                 NONSENSICAL_OPEN_OPTIONS,
                 span,
                 "file opened with `append` and `truncate`",
             );
-        }
     }
 
-    if_chain! {
-        if let Some((Argument::Set(true), create_span)) = options.get(&OpenOption::Create);
-        if let None = options.get(&OpenOption::Truncate);
-        then {
-            span_lint_and_then(
+    if let Some((Argument::Set(true), create_span)) = options.get(&OpenOption::Create)
+        && let None = options.get(&OpenOption::Truncate)
+        {
+            span_lint_and_help(
                 cx,
                 SUSPICIOUS_OPEN_OPTIONS,
                 *create_span,
                 "file opened with `create`, but `truncate` behavior not defined",
-                |diag| {
-                    diag
-                    //.span_suggestion(create_span.shrink_to_hi(), "add", ".truncate(true)".to_string(), rustc_errors::Applicability::MaybeIncorrect)
-                    .help("if you intend to overwrite an existing file entirely, call `.truncate(true)`. if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`");
-                },
+                Some(span),
+                "if you intend to overwrite an existing file entirely, call `.truncate(true)`. if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`"
             );
-        }
     }
 }
diff --git a/tests/ui/open_options.stderr b/tests/ui/open_options.stderr
index ecab243069d..11ba7444c97 100644
--- a/tests/ui/open_options.stderr
+++ b/tests/ui/open_options.stderr
@@ -31,7 +31,11 @@ error: file opened with `create`, but `truncate` behavior not defined
 LL |     OpenOptions::new().create(true).create(false).open("foo.txt");
    |                        ^^^^^^^^^^^^
    |
-   = help: if you intend to overwrite an existing file entirely, call `.truncate(true)`. if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`
+help: if you intend to overwrite an existing file entirely, call `.truncate(true)`. if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`
+  --> $DIR/open_options.rs:14:5
+   |
+LL |     OpenOptions::new().create(true).create(false).open("foo.txt");
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: `-D clippy::suspicious-open-options` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::suspicious_open_options)]`
 
@@ -59,7 +63,11 @@ error: file opened with `create`, but `truncate` behavior not defined
 LL |     OpenOptions::new().create(true).open("foo.txt");
    |                        ^^^^^^^^^^^^
    |
-   = help: if you intend to overwrite an existing file entirely, call `.truncate(true)`. if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`
+help: if you intend to overwrite an existing file entirely, call `.truncate(true)`. if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`
+  --> $DIR/open_options.rs:22:5
+   |
+LL |     OpenOptions::new().create(true).open("foo.txt");
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: aborting due to 9 previous errors