Skip to content

Commit

Permalink
Change lint message.
Browse files Browse the repository at this point in the history
  • Loading branch information
xiongmao86 committed Jan 12, 2020
1 parent 2909bc3 commit 8d3cc6b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
21 changes: 15 additions & 6 deletions clippy_lints/src/methods/mod.rs
Expand Up @@ -3268,18 +3268,27 @@ fn lint_filetype_is_file(cx: &LateContext<'_, '_>, expr: &hir::Expr<'_>, args: &
return;
}

let span: &hir::Expr<'_>;
let verb: &str;
let lint_unary: &str;
let help_unary: &str;
if_chain! {
if let Some(parent) = get_parent_expr(cx, expr);
if let hir::ExprKind::Unary(op, _) = parent.kind;
if op == hir::UnNot;
then {
let lint_msg = "`!FileType::is_file()` does not deny all readable file types";
let help_msg = "use `FileType::is_dir()` instead";
span_help_and_lint(cx, FILETYPE_IS_FILE, parent.span, lint_msg, help_msg);
lint_unary = "!";
verb = "denys";
help_unary = "";
span = parent;
} else {
let lint_msg = "`FileType::is_file()` does not cover all readable file types";
let help_msg = "use `!FileType::is_dir()` instead";
span_help_and_lint(cx, FILETYPE_IS_FILE, expr.span, lint_msg, help_msg);
lint_unary = "";
verb = "covers";
help_unary = "!";
span = expr;
}
}
let lint_msg = format!("`{}FileType::is_file()` only {} regular files", lint_unary, verb);
let help_msg = format!("use `{}FileType::is_dir()` instead", help_unary);
span_help_and_lint(cx, FILETYPE_IS_FILE, span.span, &lint_msg, &help_msg);
}
6 changes: 3 additions & 3 deletions tests/ui/filetype_is_file.stderr
@@ -1,4 +1,4 @@
error: `FileType::is_file()` does not cover all readable file types
error: `FileType::is_file()` only covers regular files
--> $DIR/filetype_is_file.rs:8:8
|
LL | if fs::metadata("foo.txt")?.file_type().is_file() {
Expand All @@ -7,15 +7,15 @@ LL | if fs::metadata("foo.txt")?.file_type().is_file() {
= note: `-D clippy::filetype-is-file` implied by `-D warnings`
= help: use `!FileType::is_dir()` instead

error: `!FileType::is_file()` does not deny all readable file types
error: `!FileType::is_file()` only denys regular files
--> $DIR/filetype_is_file.rs:13:8
|
LL | if !fs::metadata("foo.txt")?.file_type().is_file() {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: use `FileType::is_dir()` instead

error: `FileType::is_file()` does not cover all readable file types
error: `FileType::is_file()` only covers regular files
--> $DIR/filetype_is_file.rs:18:9
|
LL | if !fs::metadata("foo.txt")?.file_type().is_file().bitor(true) {
Expand Down

0 comments on commit 8d3cc6b

Please sign in to comment.