Commit graph

1383 commits

Author SHA1 Message Date
Philipp Hansch
4f4e20c561
Also lint Result.map for unit returns 2018-04-15 13:59:57 +02:00
Philipp Hansch
8307a899e9
Rename option_map_unit_fn to map_unit_fn 2018-04-15 13:01:10 +02:00
Philipp Hansch
d54f70f1f6
Generate let binding variable name for some cases
Given a map call like `x.field.map ...` the suggestion will contain:
`if let Some(x_field) ...`

Given a map call like `x.map ...` the suggestion will contain:
`if let Some(_x) ...`

Otherwise it will suggest: `if let Some(_) ...`
2018-04-15 13:01:10 +02:00
Philipp Hansch
d87385b406
Use approximate_suggestion for non-reducible closures 2018-04-15 13:01:10 +02:00
Philipp Hansch
7de707fdba
Remove further semicolon reduction 2018-04-15 13:01:10 +02:00
Philipp Hansch
db60c67c5b
Allow new lint in ui/eta.rs 2018-04-15 13:01:09 +02:00
Philipp Hansch
bcc335fc9c
Move test to new UI test system 2018-04-15 13:01:09 +02:00
Phil Turnbull
d0bdfe5ce3
Handle non-trivial nil closures
`reduce_nil_closure` mixed together a) 'is this a nil closure?' and b) 'can it
be reduced to a simple expression?'. Split the logic into two functions so we
can still generate a basic warning when the closure can't be simplified.
2018-04-15 13:01:09 +02:00
Phil Turnbull
30f2480fd8
Lint closures that return nil 2018-04-15 13:01:09 +02:00
Phil Turnbull
302f5d05f5
Lint Option.map(f) where f never returns 2018-04-15 13:01:09 +02:00
Phil Turnbull
e5ecbb55ee
Lint Option.map(f) where f returns nil 2018-04-15 13:01:09 +02:00
Oliver Schneider
b2e4b88d18
Merge pull request #2662 from mikerite/issue_2546
Fix useless_format false negative
2018-04-15 11:57:57 +02:00
Philipp Hansch
dfde407f0d
Move unnecessary_fold UI tests to separate file 2018-04-12 22:16:43 +02:00
Michael Wright
6ae617b313 Fix useless_format false negative
Closes #2546
2018-04-12 08:21:03 +02:00
Oliver Schneider
8ec61a613a
Merge pull request #2661 from devonhollowood/ptr-ptr-casts
Replace `misaligned_transmute` lint
2018-04-11 13:23:15 +02:00
Devon Hollowood
b77d74030b Deprecate misaligned_transmute 2018-04-11 02:50:04 -07:00
Devon Hollowood
c6bc682325 Fix misaligned_transmute lint
This is done by adding two new lints: cast_ptr_alignment and
transmute_ptr_to_ptr. These will replace misaligned_transmute.
2018-04-11 02:17:59 -07:00
Oliver Schneider
0692b2bb92
Temporarily disable the needless_borrow lint 2018-04-08 11:13:46 +02:00
Oliver Schneider
d247d9c690
Merge pull request #2645 from TimNN/regex-bytes-utf8
Allow invalid UTF-8 in bytes Regexes
2018-04-08 08:58:38 +02:00
Evan Simmons
d712991917 New lints for write! / writeln! macros. 2018-04-07 22:45:26 -07:00
Tim Neumann
fad826f966 allow invalid UTF-8 in bytes Regexes 2018-04-07 22:18:51 +02:00
Oliver Schneider
22df45f1ac
Merge pull request #2644 from phansch/fix_nonminimal_bool_false_positive
Fix nonminimal_bool false positive
2018-04-07 13:17:04 +02:00
Philipp Hansch
90e7d93d6c
Fix nonminimal_bool false positive
It was checking any is_ok, is_err, is_some, is_none method for negation
but it should only perform the check for the built-in types, not custom
types.
2018-04-07 12:52:59 +02:00
Philipp Hansch
5abe34832d
Split up match_bool UI tests 2018-04-07 10:23:27 +02:00
Oliver Schneider
044b3d90c3
Merge pull request #2633 from mikerite/ref_cow_tests
Move ref cow tests
2018-04-06 12:15:33 +02:00
Philipp Hansch
641f0685d0
Split up some single_match UI tests
This moves only the single_match tests over to the new file.
2018-04-05 22:45:36 +02:00
Michael Wright
2fd671e4bd Move ref cow tests
This commit moves the ref cow tests from needless_borrow.rs to ptr_arg.rs
where all the other PTR_ARG tests are.
2018-04-05 18:13:39 +02:00
Oliver Schneider
62d595b3dc
Merge pull request #2632 from phansch/fix_useless_format_false_positive
Fix useless_format false positive with macros
2018-04-05 09:59:12 +02:00
Philipp Hansch
ff98e3f9f5
Fix useless_format false positive with macros
Clippy was issuing a warning when `format!` was used inside a macro.
That's a problem because macros have different syntax and can be outside
the control of the user.

This skips the `useless_format` check if the `format!` call is inside a
macro.
2018-04-05 07:52:26 +02:00
memoryleak47
d9508ba99d typo 2018-04-05 04:13:14 +02:00
flip1995
cecfdeab19
Don't trigger while_immutable_condition for mutable fields of tuples/structs 2018-04-03 16:41:30 +02:00
Michael Wright
6fc9d90b60 Re-enable dogfood test on Windows
This should work now that dogfood uses a separate output directory.
2018-04-03 06:22:42 +02:00
Oliver Schneider
90fcdafb79
Merge pull request #2608 from mrecachinas/feature/print-string-literal
Check for literals as println! args
2018-04-02 23:34:17 +02:00
Michael Recachinas
fa8161ba2e Revert adding env! to tests 2018-04-02 21:34:04 +01:00
Michael Recachinas
d504290839 Add edge case with env! arg to test and known problems 2018-04-02 21:14:29 +01:00
Michael Wright
0fbcb30303 Merge branch 'master' into dogfood_target_dir 2018-04-02 07:28:10 +02:00
Michael Recachinas
ddd75fbfec Add #![allow(print_literal)] to other test/ui/print_*.rs tests 2018-04-02 00:24:40 +01:00
Michael Recachinas
62220abfa6 Add implementation and tests for literal checking in print/println format args 2018-04-01 23:19:53 +01:00
Michael Wright
1ab96db791 Make dogfood test output to seperate directory
This commit makes `cargo clippy` output the build artifacts to a
separate directory if the `CLIPPY_DOGFOOD` env var is set. This should
prevent dogfood builds from interfering with regular builds.

This should help with issue #2595.
2018-04-01 09:44:30 +02:00
Philipp Hansch
db1ec44616
Handle nested block comments 2018-03-30 12:36:50 +02:00
Philipp Hansch
b7929cafe1
Fix false positive in empty_line_after_outer_attr
Before, when you had a block comment between an attribute and the
following item like this:

```rust
\#[crate_type = "lib"]
/*

*/
pub struct Rust;
```

It would cause a false positive on the lint, because there is an empty
line inside the block comment.

This makes sure that basic block comments are detected and removed from
the snippet that was created before.
2018-03-30 12:36:50 +02:00
Oliver Schneider
c1bbc173da
Address review comments 2018-03-29 13:41:53 +02:00
Oliver Schneider
eafb9fe8df
Update test suite 2018-03-28 23:49:32 +02:00
Oliver Schneider
d6344c47e3
Categorize all the lints! 2018-03-28 15:24:26 +02:00
Oliver Schneider
b6e2c47df0
Merge pull request #2572 from flip1995/immut_while
Fix check of immutable condition in closure
2018-03-27 07:07:27 +02:00
Michael Wright
546d2fec29 Fix enum_glob_use false positives
Closes #2397.

This checks the def of the `ItemUse` path instead of checking the
capitalization of the path segements. It was noted that this def would
sometimes be `Def::Mod` instead of `Def::Enum` but it seems correct now.
2018-03-27 06:34:11 +02:00
flip1995
7d29075132
Skip the mutation in while body case for closures 2018-03-27 02:13:06 +02:00
flip1995
d458f22d89
Fix check of immutable condition in closure 2018-03-27 01:21:25 +02:00
Oliver Schneider
b01b0083ba
Merge pull request #2576 from kimsnj/infinite_loop
while_immutable_condition: fix handling of self
2018-03-27 00:06:16 +02:00
Karim Snj
737247e50e while_immutable_condition: limit suggestion span to condition 2018-03-26 23:24:57 +02:00