xiongmao86
4f14826e09
Lint on opt.as_ref().map(|x| &**x).
2020-04-06 22:53:59 +08:00
Jacek Pospychala
9c9af1d885
Include OpAssign in suspicious_op_assign_impl
2020-04-05 22:25:51 +02:00
Nick Torres
fb276dc3fa
result_map_or_into_option: add opt.map_or(None, |_| Some(y))
test
2020-04-04 14:16:26 -07:00
Nick Torres
d0738bd673
result_map_or_into_option: destructure lint tuple or return early
2020-04-04 14:16:23 -07:00
David Tolnay
be34bc46ed
Downgrade unreadable_literal to pedantic
2020-04-04 12:52:03 -07:00
Nick Torres
91d8a804d3
result_map_or_into_option: add lint to catch manually adpating Result -> Option
...
Result<T, E> has an `ok()` method that adapts a Result<T,E> into an Option<T>.
It's possible to get around this adapter by writing Result<T,E>.map_or(None, Some).
This lint is implemented as a new variant of the existing
[`option_map_none` lint](https://github.com/rust-lang/rust-clippy/pull/2128 )
2020-04-04 03:17:13 -07:00
David Tolnay
94154cad20
Downgrade trivially_copy_pass_by_ref to pedantic
2020-04-02 18:56:10 -07:00
David Tolnay
adcaa1b86d
Downgrade let_unit_value to pedantic
2020-04-02 18:31:31 -07:00
bors
a840d594cc
Auto merge of #5349 - jpospychala:useless_rc, r=Manishearth
...
useless Rc<Rc<T>>, Rc<Box<T>>, Rc<&T>, Box<&T>
refers to #2394
changelog: Add lints for Rc<Rc<T>> and Rc<Box<T>> and Rc<&T>, Box<&T>
this is based on top of another change #5310 so probably should go after that one.
2020-04-02 03:11:29 +00:00
Jacek Pospychala
f8e892db5e
useless Rc<Rc<T>>, Rc<Box<T>>, Rc<&T>, Box<&T>
2020-04-02 00:02:25 +02:00
bors
7ebb3aa55d
Auto merge of #5402 - pmk21:allow-let-underscore-must-use, r=flip1995
...
Allow let_underscore_must_use to be ignored
changelog: none
Fixes #5366
2020-04-01 21:43:44 +00:00
bors
42796e11c5
Auto merge of #5401 - dtolnay:option, r=Manishearth
...
Downgrade option_option to pedantic
Based on a search of my work codebase (\>500k lines) for `Option<Option<`, it looks like a bunch of reasonable uses to me. The documented motivation for this lint is:
> an optional optional value is logically the same thing as an optional value but has an unneeded extra level of wrapping
which seems a bit bogus in practice. For example a typical usage would look like:
```rust
let mut host: Option<String> = None;
let mut port: Option<i32> = None;
let mut payload: Option<Option<String>> = None;
for each field {
match field.name {
"host" => host = Some(...),
"port" => port = Some(...),
"payload" => payload = Some(...), // can be null or string
_ => return error,
}
}
let host = host.ok_or(...)?;
let port = port.ok_or(...)?;
let payload = payload.ok_or(...)?;
do_thing(host, port, payload)
```
This lint seems to fit right in with the pedantic group; I don't think linting on occurrences of `Option<Option<T>>` by default is justified.
---
changelog: Remove option_option from default set of enabled lints
2020-04-01 21:30:24 +00:00
David Tolnay
f6e8da81f1
Update option_option ui test
2020-04-01 12:15:39 -07:00
pmk21
97acabe56a
Test for ignoring let_underscore_must_use
2020-04-02 00:44:09 +05:30
flip1995
7d58ba20b4
Rustup to rust-lang/rust#70632
2020-04-01 20:14:05 +02:00
flip1995
63987aafba
Rustup to rust-lang/rust#70081
2020-04-01 20:12:36 +02:00
pmk21
79ab05458f
Small formatting change
2020-03-31 16:13:51 +05:30
pmk21
793403a2a8
Added test for single_match_else in macro
2020-03-31 15:49:49 +05:30
pmk21
ba6a3280f5
Added test for single_match in macro
2020-03-31 15:49:27 +05:30
bors
0a25944f78
Auto merge of #5294 - tmiasko:trait-ptr-cmp, r=Manishearth
...
Lint unnamed address comparisons
Functions and vtables have an insignificant address. Attempts to compare such addresses will lead to very surprising behaviour. For example: addresses of different functions could compare equal; two trait object pointers representing the same object and the same type could be unequal.
Lint against unnamed address comparisons to avoid issues like those in rust-lang/rust#69757 and rust-lang/rust#54685.
changelog: New lints: [`fn_address_comparisons`] [#5294 ](https://github.com/rust-lang/rust-clippy/pull/5294 ), [`vtable_address_comparisons`] [#5294 ](https://github.com/rust-lang/rust-clippy/pull/5294 )
2020-03-30 19:52:41 +00:00
Tomasz Miąsko
b77b219280
Lint unnamed address comparisons
2020-03-30 21:42:16 +02:00
bors
42c36dc77b
Auto merge of #5365 - mgr-inz-rafal:issue4983_bool_updates, r=yaahc
...
Issue4983 bool updates
changelog: Check for bool inequality comparison that might be written more concisely
Fixes #4983
2020-03-30 19:20:10 +00:00
bors
563da5248d
Auto merge of #5387 - jpospychala:useless_self_fp, r=yaahc
...
`unused_self` false positive
fixes #5351
Remove the for loop in `unused_self` so that lint enabled for one method doesn't trigger on another method.
changelog: Fix false positive in `unused_self` around lint gates on impl items
2020-03-30 18:10:21 +00:00
Matthias Krüger
aff57e0f43
rustup https://github.com/rust-lang/rust/pull/70536
2020-03-30 11:17:58 +02:00
Jacek Pospychala
82f929cbaf
unused_self
false positive
2020-03-29 22:22:36 +02:00
Lzu Tao
d055b7d61c
Deprecate REPLACE_CONSTS lint
2020-03-29 12:59:35 +07:00
Matthias Krüger
b86e8434df
move redundant_pub_crate to nursery
...
cc #5369
2020-03-25 18:14:11 +01:00
bors
100a24d9d8
Auto merge of #5364 - flip1995:useless_transmute_quarantine, r=Manishearth
...
Move useless_transmute to nursery
cc #5343
@rust-lang/clippy anyone against moving this to nursery?
changelog: Move [`useless_transmute`] to nursery
2020-03-23 20:52:57 +00:00
bors
d3989eef2d
Auto merge of #5319 - 1tgr:master, r=flip1995
...
Lint for `pub(crate)` items that are not crate visible due to the visibility of the module that contains them
changelog: Add `redundant_pub_crate` lint
Closes #5274 .
2020-03-23 20:35:49 +00:00
mgr-inz-rafal
ff9602515e
Code clean-up and formatting
2020-03-23 21:21:18 +01:00
mgr-inz-rafal
3d3af07845
Provide appropriate suggestion
2020-03-23 21:00:02 +01:00
flip1995
13fcee51e7
Move useless_transmute to nursery
2020-03-23 20:32:04 +01:00
mgr-inz-rafal
12796cd688
Initial lint without suggestion
2020-03-23 20:29:12 +01:00
Tim Robinson
870b9e8139
nursery group -> style
2020-03-23 16:45:31 +00:00
ThibsG
badfbbbbde
Fix single binding in closure
2020-03-22 10:31:30 +01:00
Tim Robinson
de9092438d
Update for PR feedback
2020-03-20 22:52:53 +00:00
bors
0e5e2c4365
Auto merge of #5323 - rabisg0:fix/5284, r=flip1995
...
Improvement: Don't show function body in needless_lifetimes
Changes the span on which the lint is reported to point to only the
function return type instead of the entire function body.
Fixes #5284
changelog: none
2020-03-20 12:45:30 +00:00
Philipp Krones
983d195bb5
Rollup merge of #5333 - matthiaskrgr:rustup_34, r=flip1995
...
rustup https://github.com/rust-lang/rust/pull/69189
rustups https://github.com/rust-lang/rust/pull/69189 which is part of https://github.com/rust-lang/rust/pull/70085
(at least I think this is the only pr that changes clippy test stdout)
changelog: none
2020-03-19 15:00:30 +01:00
Rabi Guha
0812a0af4c
Improvement: Don't show function body in needless_lifetimes
...
Changes the span on which the lint is reported to point to only the
function return type instead of the entire function body.
Fixes #5284
2020-03-19 12:03:02 +05:30
Matthias Krüger
ec1dcde46b
tests: arithmetic: split into integer_arithmetic and float_arithmetic files.
2020-03-18 15:50:01 +01:00
flip1995
a808779441
Split up checked_unwrap test further
2020-03-18 15:26:24 +01:00
Matthias Krüger
c7c7ab23aa
integer_arithmetic: detect integer arithmetic on references.
...
Also fixes the same for float_arithmetic.
changelog: integer_arithmetic,float_arithmetic: fix false negatives with references on integers
Fixes #5328
2020-03-18 14:52:01 +01:00
Matthias Krüger
b875c53d2c
rustup https://github.com/rust-lang/rust/pull/69189
...
rustups https://github.com/rust-lang/rust/pull/69189 which is part of https://github.com/rust-lang/rust/pull/70085
(at least I think this is the only pr that changes clippy test stdout)
2020-03-18 03:27:05 +01:00
Tim Robinson
52208f3cf3
Lint for pub(crate)
items that are not crate visible due to the visibility of the module that contains them
...
Closes #5274 .
2020-03-16 12:21:00 +00:00
Shotaro Yamada
d9ad33852c
Use visit_place
2020-03-13 02:06:47 +09:00
Shotaro Yamada
aca64b8df7
Check for mutation
2020-03-13 01:25:18 +09:00
Shotaro Yamada
9de642190e
Extend redundant_clone
to the case that cloned value is not consumed
2020-03-13 00:31:09 +09:00
bors
fdce47ba7d
Auto merge of #5272 - jmeyers35:file_read_lint, r=flip1995
...
add lint on File::read_to_string and File::read_to_end
Adds lint `verbose_file_reads` which checks for use of File::read_to_end and File::read_to_string.
Closes https://github.com/rust-lang/rust-clippy/issues/4916
changelog: add lint on File::{read_to_end, read_to_string}
2020-03-10 22:35:15 +00:00
bors
9d5ffe8105
Auto merge of #5300 - JohnTitor:edition-flag, r=flip1995
...
Use `edition:2018` flag more widely
Now we recommend using `// edition:2018`, so let's use it more widely.
Also replace a too old example with new one in the docs.
changelog: none
2020-03-10 22:02:41 +00:00
Jacob Meyers
a4ba1027fc
add CR feedback
2020-03-10 18:00:37 -04:00
Yuki Okushi
515847dad1
Use edition:2018
flag more widely
2020-03-11 06:35:07 +09:00
bors
23bd427f92
Auto merge of #5298 - rust-lang:needless_doc_main_code, r=flip1995,Manishearth
...
needless_doc_main: only check rust code
This fixes #5280 by checking the language attribute on code blocks.
---
changelog: none
2020-03-10 21:30:44 +00:00
Manish Goregaokar
d5c8b783b8
Update tests/ui/needless_doc_main.rs
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2020-03-10 14:30:07 -07:00
Andre Bogus
2fa3da4869
needless_doc_main: only check rust code
2020-03-10 20:19:37 +01:00
bors
557f6848bd
Auto merge of #5296 - sinkuu:fix_ice_trivial_bounds, r=flip1995
...
Fix ICE with trivial_bounds feature
https://github.com/rust-lang/rust/issues/69874#issuecomment-596890446
changelog: Fix ICE with trivial_bounds feature
2020-03-10 12:25:07 +00:00
Yuki Okushi
8d2a3e0a61
Use node_type_opt
over node_type
2020-03-10 18:18:34 +09:00
Shotaro Yamada
a3d9355bef
Fix ICE with trivial_bounds feature
2020-03-10 13:17:35 +09:00
Jacek Pospychala
697e3c89a7
Improve placeholder in map_unit_fn
2020-03-09 20:37:06 +01:00
bors
d8f64b6eba
Auto merge of #5287 - matthiaskrgr:pat_isref, r=flip1995
...
redundant_pattern: take binding (ref, ref mut) into account in suggestion
fixes #5271
changelog: redundant_pattern: take binding (ref, ref mut) into account in suggestion (#5271 )
2020-03-09 17:25:09 +00:00
bors
118594ffa2
Auto merge of #5291 - ThibsG:FixSingleBinding, r=flip1995
...
Fix match single binding when in a let stmt
Fix bad suggestion when `match_single_binding` lints when inside a local (let) statement.
Fixes #5267
changelog: none
2020-03-09 16:04:26 +00:00
ThibsG
40a04f2657
Fix match single binding when in a let stmt
2020-03-09 16:59:24 +01:00
Vivek Ghaisas
ab6e709ee6
Improve error messages for {option,result}_map_unit_fn
...
Instead of saying "unit function", use the phrase the description
uses: "function that returns the unit type".
Fixes #5180 .
2020-03-08 21:28:06 +00:00
Matthias Krüger
75a2300e27
redundant_pattern: take binding (ref, ref mut) into account in suggestion.
...
fixes #5271
2020-03-08 10:47:18 +01:00
Jacob Meyers
0f7f30711e
add lint on File::read_to_string and File::read_to_end
2020-03-06 09:50:49 -05:00
flip1995
57393b5106
Rename macro_use_import -> macro_use_imports
2020-03-05 19:22:17 +01:00
bors
23d2b21297
Auto merge of #5230 - DevinR528:macro-use, r=flip1995
...
Macro use
---
changelog: This lint enforces Rust 2018 idiom of importing macro's directly without `#[macro_use]` fixes #5179 .
2020-03-05 17:30:52 +00:00
bors
329923edec
Auto merge of #5257 - mlegner:cast_hex_fp, r=flip1995
...
Resolve false positives of unnecessary_cast for non-decimal integers
This PR resolves false positives of `unnecessary_cast` for hexadecimal integers to floats and adds a corresponding test case.
Fixes : #5220
changelog: none
2020-03-04 16:11:40 +00:00
Devin R
597e02dcdf
warn on macro_use attr
2020-03-04 09:36:02 -05:00
bors
8c7b3ad3fa
Auto merge of #5266 - sinkuu:questionmark, r=flip1995
...
Lint `if let Some` and early return in question_mark lint
Fixes #5260
changelog: lint `if let Some` and early return in `question_mark` lint
2020-03-04 13:30:08 +00:00
mlegner
73deb723dd
Included binary and octal cases.
2020-03-04 13:21:01 +01:00
mlegner
9ff4581cd3
Test for unnecessary_cast of hex int literal.
2020-03-04 13:21:00 +01:00
bors
36b65986af
Auto merge of #5258 - ThibsG:UselessBindingInStruct638, r=flip1995
...
Add lint for .. use in fully binded struct
This PR adds the lint `match-wild-in-fully-binded-struct` to prevent the use of the `..` pattern when all fields of the struct are already binded.
Fixes : #638
changelog: Add [`rest_pat_in_fully_bound_structs`] lint to warn against the use of `..` in fully binded struct
2020-03-04 11:06:31 +00:00
bors
8dc3fde127
Auto merge of #5246 - JarredAllen:master, r=flip1995
...
Detect usage of custom floating-point abs implementation
Closes #5224
changelog: Enhance [`suboptimal_flops`] lint to detect manual implementations of the `abs` method
2020-03-04 10:53:03 +00:00
Shotaro Yamada
246709f89e
run-rustfix
2020-03-04 17:37:01 +09:00
Shotaro Yamada
45f61ead2c
Lint if let Some
in question_mark lint
2020-03-04 17:24:12 +09:00
ThibsG
2aa14c9beb
Add restrictive pat use in full binded struct
2020-03-04 09:11:07 +01:00
JarredAllen
c3e96d14ab
Update test case answers to match cargo dev fmt
2020-03-03 19:23:04 -08:00
JarredAllen
fe342f3291
Ran cargo dev fmt
2020-03-03 18:06:59 -08:00
flip1995
a640696cdf
Rustup to rust-lang/rust#69506
2020-03-04 00:56:43 +01:00
JarredAllen
f8e949fa1c
Recommended changes from flip1995
2020-03-03 15:52:53 -08:00
Yuki Okushi
46ee6b1840
Add regression test
2020-03-03 22:22:46 +09:00
bors
f44181e799
Auto merge of #5047 - flip1995:use_debug, r=phansch
...
Don't trigger use_debug lint in Debug impl
Fixes #5039
changelog: Don't trigger [`use_debug`] lint in Debug impl
2020-03-03 11:32:51 +00:00
bors
5d3e3e1a9e
Auto merge of #5250 - mlegner:unused_fp, r=flip1995
...
Whitelist unused attribute for use items.
This PR whitelists the `unused` attribute with `use` items and adds a corresponding test case.
Fixes : #5229
changelog: none
2020-03-03 11:16:55 +00:00
flip1995
a540b5ca2e
Update stderr
2020-03-03 10:48:08 +01:00
mlegner
8669be56c4
Whitelist unused attribute for use items.
2020-03-02 10:22:05 +01:00
JarredAllen
ee73972537
Changed test output to reflect cargo fmt
2020-02-29 19:11:38 -08:00
JarredAllen
bfa2691559
Run cargo dev fmt
2020-02-29 18:51:39 -08:00
JarredAllen
028cddb956
Finished checking for cases of absolute values
2020-02-29 13:46:59 -08:00
Matthias Krüger
1e29b36e4e
add test for #5238
2020-02-28 22:00:20 +01:00
JarredAllen
5a21661ce5
Some bugfixing
2020-02-28 12:40:13 -08:00
JarredAllen
ce0dc9b70e
Created floating point abs lint and test, but not yet run
2020-02-27 22:31:41 -08:00
Yuki Okushi
7c760e5f83
Rustup to rust-lang/rust#61812
2020-02-27 12:19:18 +09:00
Krishna Sai Veera Reddy
ff0d44e45a
Add imprecise_flops
lint
...
Add lint to detect floating point operations that can be computed more
accurately at the cost of performance. `cbrt`, `ln_1p` and `exp_m1`
library functions call their equivalent cmath implementations which is
slower but more accurate so moving checks for these under this new lint.
2020-02-23 22:36:15 -08:00
Krishna Sai Veera Reddy
e94a167508
Rename mul_add
test file and add general improvements
2020-02-23 22:20:34 -08:00
Krishna Sai Veera Reddy
4065ca9c8c
Move manual_mul_add
into suboptimal_flops
lint
2020-02-23 22:20:34 -08:00
Krishna Sai Veera Reddy
454e505c12
Run rust-fix on tests
2020-02-23 22:20:34 -08:00
Krishna Sai Veera Reddy
6dacb1aa67
Change lint name to suboptimal_flops
2020-02-23 22:20:34 -08:00
Krishna Sai Veera Reddy
bc03f465c3
Remove lint for logarithm division identity
2020-02-23 22:20:34 -08:00
Krishna Veera Reddy
fd2506bcbf
Add type suffixes to unsuffixed method receiver suggestions
2020-02-23 22:20:34 -08:00
Krishna Veera Reddy
de07c84903
Detect usage of (x + 1).ln()
and suggest x.ln_1p()
instead
2020-02-23 22:20:34 -08:00
Krishna Veera Reddy
a60ae5d31c
Split test cases into separate files
2020-02-23 22:20:34 -08:00
Krishna Veera Reddy
de79733924
Lint expressions of the form x.log(b) / y.log(b)
2020-02-23 22:20:33 -08:00
Krishna Veera Reddy
9520d3dfa4
Suggest usage of powi
method when applicable
2020-02-23 22:20:33 -08:00
Krishna Veera Reddy
1f4f357bf5
Consolidate the accuracy and efficiency lints
...
Merge the accuracy and efficiency lints into a single lint that
checks for improvements to accuracy, efficiency and readability
of floating-point expressions.
2020-02-23 22:20:33 -08:00
Krishna Veera Reddy
c636c6a55b
Add lints to detect inaccurate and inefficient FP operations
...
Add lints to detect floating point computations that are either
inaccurate or inefficient and suggest better alternatives.
2020-02-23 22:20:33 -08:00
Krishna Sai Veera Reddy
049079856b
Prevent missing_const_for_fn
on functions with const generic params
...
`const` functions cannot have const generic parameters so prevent the
`missing_const_for_fn` lint from firing in that case.
2020-02-21 19:56:44 -08:00
flip1995
4dd2252b17
Fix suggestion for weird formattings
2020-02-21 11:14:19 +01:00
flip1995
b67764d5cb
Add test for prelude import
2020-02-21 11:14:18 +01:00
flip1995
06a6189376
Move enum_glob_use lint into wildcard_imports pass
2020-02-21 11:14:17 +01:00
flip1995
8a572a540a
Add tests for wildcard_imports lint
2020-02-21 11:02:25 +01:00
bors
acfcbee4a2
Auto merge of #5202 - krishna-veerareddy:issue-5201-move-lossy-float-literal-restriction, r=flip1995
...
Move check for lossy whole-number floats out of `excessive_precision`
changelog: Add new lint `lossy_float_literal` to detect lossy whole number float literals and move it out of `excessive_precision` again.
Fixes #5201
2020-02-21 09:43:55 +00:00
Yuki Okushi
8abe4365f3
Use generator own DefId
2020-02-21 16:24:58 +09:00
Krishna Sai Veera Reddy
219c94d028
Separate out lint to check lossy whole number float literals
2020-02-20 22:33:36 -08:00
Matthias Krüger
4f85bc2fe9
rustup https://github.com/rust-lang/rust/pull/69325 , update test stderr
2020-02-20 23:54:10 +01:00
flip1995
fb989d3215
Remove remaining license header in test file
2020-02-20 12:06:45 +01:00
Krishna Sai Veera Reddy
533422fcce
Add LOG2_10
and LOG10_2
to approx_const
lint
2020-02-18 08:05:00 -08:00
daxpedda
0ee393cf01
Add tests and improve checks.
2020-02-17 14:43:38 +01:00
Krishna Sai Veera Reddy
552452873c
Add tests for lossy whole number float literals
2020-02-17 00:05:50 -08:00
Yuki Okushi
09165ff576
Don't lint single_component_path_imports
in macros
2020-02-17 11:13:42 +09:00
Yuki Okushi
f77158bc14
Fix false positive in zero_prefixed_literal
2020-02-13 14:39:29 +09:00
Krishna Sai Veera Reddy
fcc3e7238f
Remove unnecessary imports from tests
2020-02-11 06:20:47 -08:00
Krishna Sai Veera Reddy
b48b221f80
Use PATH
environment variable for testing
...
The tests were failing on windows because the `HOME` env variable
doesn't exist on it so using the `PATH` variable to test instead.
2020-02-09 15:35:51 -08:00
Krishna Sai Veera Reddy
a3a1587a1c
Allow option-env-unwrap
within external macros
2020-02-09 10:58:08 -08:00
Krishna Sai Veera Reddy
0e5ba2f0e7
Account for expect
being used to unwrap Option
2020-02-09 08:54:23 -08:00
Krishna Sai Veera Reddy
be1bc571c3
Add option-env-unwrap
lint
2020-02-08 16:44:35 -08:00
Lzu Tao
9a12baad35
Update CARGO_TARGET_DIR
2020-02-07 14:41:04 +07:00
Lzu Tao
c6a4beaf56
Rustup https://github.com/rust-lang/rust/pull/67359
2020-02-07 10:40:09 +07:00
bors
b5e6d6db41
Auto merge of #5134 - flip1995:snippet_block, r=phansch
...
Make it possible to correctly indent snippet_block snippets
This adds a `indent_relative_to` arg to the `{snippet,expr}_block` functions. This makes it possible to keep the correct indentation of block like suggestions.
In addition, this makes the `trim_multiline` function private and adds a `indent_of` function, to get the indentation of the first line of a span.
The suggestion of `needless_continue` cannot be made auto applicable, since it would be also necessary to remove code following the linted expression. (Well, maybe it is possible, but I don't know how to do it. Expanding the suggestion span to the last expression, that should be removed didn't work)
changelog: Improve suggestions, when blocks of code are involved
2020-02-06 21:41:50 +00:00
flip1995
9897927504
Rustup to rust-lang/rust#68788
2020-02-06 20:33:39 +01:00
flip1995
4068ff4d8a
Improve help message in needless_continue
2020-02-06 19:15:01 +01:00
flip1995
c7979d3515
Fix rebase fallout
2020-02-06 19:15:01 +01:00
flip1995
7363728d18
Update remaining test files
2020-02-06 19:15:01 +01:00
flip1995
f1a72e992d
Update needless_continue stderr
2020-02-06 19:13:46 +01:00
flip1995
10cd1662c1
Update block_in_if_condition test files
2020-02-06 19:13:46 +01:00
bors
75e983a518
Auto merge of #5125 - Areredify:too_many_bools, r=flip1995
...
Port mitsuhiko's excessive bools lints
Closes #4 .
changelog: add `struct_excessive_bools` and `fn_params_excessive_bools` lints.
I moved is_trait_impl_item check because at first I implemented it as a late pass for some reason but then I realized it's actually an early lint. But it's a useful function to have, should I move it into a separate pr?
2020-02-06 14:47:14 +00:00
bors
a3135ba131
Auto merge of #5132 - JohnTitor:fix-fp-in-unwrap-lint, r=flip1995
...
Do not lint `unnecessary_unwrap` in external macros
Fixes #5131
I think we shouldn't lint `{panicking, unnecessary}_unwrap` in macros, not just `assert!`.
changelog: Fix false positive in `unnecessary_unwrap`
2020-02-06 14:17:35 +00:00
Areredify
338fb7a3e9
add excessive bools lints
2020-02-05 20:54:58 +03:00
ThibsG
53094de08e
Merge fixes
2020-02-04 22:53:24 +01:00
ThibsG
b29aacfec8
Add wild and struct handling
2020-02-04 22:53:24 +01:00
ThibsG
6afd7ea147
Use span_lint_and_sugg + move infaillible lint
...
- moving infaillible lint to prevent collisions
2020-02-04 22:49:08 +01:00
Yuki Okushi
19ce66c1c1
Re-cover use of unnecessary unwraps in macros
2020-02-05 05:38:26 +09:00
ThibsG
3445d41f07
Add new lint: match with a single binding statement
...
- Lint name: MATCH_SINGLE_BINDING
2020-02-04 01:06:16 +01:00
Yuki Okushi
514b1bc2af
Do not lint unnecessary_unwrap
in macros
2020-02-04 04:01:42 +09:00
Yuki Okushi
49934e70a2
Remove unnecessary comment
2020-02-04 01:29:11 +09:00
Yuki Okushi
7c5785ca2b
Split up indexing_slicing
ui test
2020-02-03 15:09:17 +09:00
Yuki Okushi
fa32b41365
Split up drop_forget_ref
ui test
2020-02-01 20:28:27 +09:00
Matthias Krüger
187983e991
update test stderr
2020-01-31 20:21:10 +01:00
flip1995
006f07f090
Add test for await
in debug_assert!(..)
2020-01-31 10:57:51 +01:00
bors
bbef531518
Auto merge of #5108 - JohnTitor:split-up-0130, r=flip1995
...
Split up `match` ui test
Part of #2038
Also, this decreases the line length limit to 220.
changelog: none
2020-01-30 21:06:47 +00:00
bors
668bc485da
Auto merge of #5101 - Areredify:let_underscore_lock, r=flip1995
...
add `let_underscore_lock` lint
closes #1574
changelog: add `let_underscore_lock` lint
I am not entirely sure about my docs/messages wording here, improvements are welcome
2020-01-30 20:24:24 +00:00
Areredify
63ab7a5e8c
lint all guard types, not just lock functions
2020-01-30 18:46:22 +03:00
Mikhail Babenko
9b88a2b295
decouple 'let_underscore' tests
2020-01-30 16:51:23 +03:00
Mikhail Babenko
d1f8621711
add lint
2020-01-30 16:48:56 +03:00
Yuki Okushi
17489ef811
Split up match
ui test
2020-01-30 12:06:42 +09:00
Yuki Okushi
ed6a0cc8a1
Revive test in enum_clike_unportable_variant
2020-01-30 11:43:19 +09:00
xiongmao86
26b1d60f15
Add test and update reference.
2020-01-30 00:22:42 +08:00
Yuki Okushi
314f438ab4
Split up non_copy_const
ui test
2020-01-27 12:14:11 +09:00
bors
4f65bec39a
Auto merge of #5084 - JohnTitor:clean-up-span-lint, r=flip1995
...
Clean up `span_lint` in `methods/mod.rs`
Uses `span_help_and_lint` instead of `span_lint` and `span_lint_and_sugg` instead of `span_lint_and_then`.
changelog: none
2020-01-26 15:28:39 +00:00
Philipp Hansch
45333102d7
Resolve FIXME: String::new is now a const fn
...
`const_string_new` is stable since Rust 1.39
2020-01-26 11:03:53 +01:00
Yuki Okushi
4b133f2867
Apply review comments
2020-01-26 07:01:16 +09:00
bors
fd6f609f64
Auto merge of #5083 - Areredify:issue-4399, r=flip1995
...
dont fire `possible_missing_comma` if intendation is present
Closes #4399
changelog: dont fire `possible_missing_comma` if intendation is present
I suspect there is already a utils function for indentation (but searching indent didn't yield a function for that), and my solution is certainly not universal, but it's probably the best we can do.
2020-01-25 17:47:54 +00:00
Mikhail Babenko
a234aef084
dont fire possible_missing_comma if intendation is present
2020-01-25 20:16:05 +03:00
bors
6b5419412e
Auto merge of #5081 - Areredify:vec_box_threshold, r=flip1995
...
add size parameter for `vec_box` lint
changelog: add size threshold for the `vec_box` lint, currently 4096 bytes (one page) (subject to change). Closes #3547 .
diff is a little bit confusing due to some refactoring (moving free functions to lint struct functions), relevant portion is [this](https://github.com/rust-lang/rust-clippy/compare/master...Areredify:vec_box_threshold?expand=1#diff-1096120ca9143af89dcc9175ea92b54aR294-R298 ). In hindsight should've been different commits, but oh well.
2020-01-25 16:11:43 +00:00
Mikhail Babenko
2b7bc260de
add size parameter for lint
2020-01-25 18:06:52 +03:00
Yuki Okushi
83f6b516a0
Split up match_same_arms
ui test
2020-01-25 14:25:45 +09:00
bors
87597b5a42
Auto merge of #5087 - Areredify:issue-4905, r=phansch
...
improve `empty_enum` documentation
closes #4905
changelog: improve `empty_enum` help message and documentation.
2020-01-24 22:30:07 +00:00
bors
1ccd284ec6
Auto merge of #5086 - Areredify:issue-3746, r=phansch
...
don't fire `empty_loop` in `no_std` crates
closes #3746 .
changelog: move no_std detection to utils, don't fire empty_loop in no_std crates
2020-01-24 21:42:46 +00:00
Mikhail Babenko
634774b89b
don't fire empty_loop in no_std crates
2020-01-24 14:42:24 +03:00
Mikhail Babenko
199ae1714e
improve empty_enum documentation
2020-01-24 14:37:16 +03:00
Yuki Okushi
46b787d1b8
Split up needless_range_loop
ui test
2020-01-24 17:21:50 +09:00
Yuki Okushi
3999b30d9b
Update stderrs
2020-01-24 17:04:46 +09:00
bors
2c7cfa8321
Auto merge of #5027 - sinkuu:vectored_io, r=phansch
...
Lint vectored IO in unused_io_amount lint
`read_vectored` & `write_vectored` require handling returned value likewise non-vectored methods. https://github.com/rust-lang/rust/issues/68041
---
changelog: lint vectored IO in `unused_io_amount` lint
2020-01-24 06:44:09 +00:00
bors
3237b7a69f
Auto merge of #5082 - Areredify:issue-4980, r=flip1995
...
disable let_underscore_must_use in external macros
changelog: disable let_underscore_must_use in external macros
Closes #4980
2020-01-23 18:29:28 +00:00
Mikhail Babenko
fef3657100
disable let_underscore_must_use in external macros
2020-01-23 20:02:34 +03:00
Areredify
796958c7e2
add option_as_ref_deref
lint
2020-01-23 16:12:16 +03:00
Yuki Okushi
a7d58edf27
Ignore macros with !
operators in eq_op
2020-01-22 16:48:00 +09:00
bors
f78cc07509
Auto merge of #5068 - JohnTitor:split-up-transmute, r=phansch
...
Split up `transmute` ui test
Part of #2038
changelog: none
2020-01-21 06:22:05 +00:00
bors
dd06c06183
Auto merge of #5028 - krishna-veerareddy:issue-5026-mem-ordering-fences, r=phansch
...
Detect usage of invalid atomic ordering in memory fences
Detect usage of `core::sync::atomic::{fence, compiler_fence}` with `Ordering::Relaxed` and suggest valid alternatives.
changelog: Extend `invalid_atomic_ordering` to lint memory fences
Fixes #5026
2020-01-21 05:53:46 +00:00
bors
eca0d8e5d0
Auto merge of #5067 - JohnTitor:lint-skip-while-next, r=flip1995
...
Add `skip_while_next` lint
Fixes #4036
changelog: Add `skip_while_next` lint
2020-01-20 17:28:38 +00:00
bors
32949da78e
Auto merge of #5070 - JohnTitor:suspicious-map-doc, r=flip1995
...
Improve `suspicious_map`documentation
Fixes #4793
changelog: none
2020-01-20 12:12:03 +00:00
Yuki Okushi
bec5b69e45
Apply review comment
2020-01-20 21:07:31 +09:00
Yuki Okushi
f8034e0bc6
Improve suspicious_map
documentation
2020-01-20 15:05:40 +09:00
Yuki Okushi
fdda3c3f25
Tweak wording in assertions_on_constants
2020-01-20 11:52:58 +09:00
Yuki Okushi
67d0f443b3
Split up transmute
ui test
2020-01-20 11:16:50 +09:00
Yuki Okushi
95c369fa91
Add skip_while_next
lint
2020-01-20 10:56:02 +09:00
bors
f7b3e4f29c
Auto merge of #5056 - rust-lang:dissasociate-mut-key, r=flip1995
...
Avoid mut_key on types of unknown layout
This fixes #5020 by requiring a known layout for the key type before linting. Edit: This fixes #5043 , too.
changelog: none
2020-01-19 14:41:28 +00:00
Andre Bogus
59fd637ba1
Avoid mut_key on types of unknown layout
2020-01-19 14:49:18 +01:00
bors
fd0428f622
Auto merge of #5032 - JohnTitor:add-sugg-some-result, r=flip1995
...
Add suggestions for `if_let_some_result`
Fixes #4991
This approach may be fragile though...
changelog: Add suggestions for `if_let_some_result`
2020-01-19 12:27:35 +00:00
Yuki Okushi
c9f8d03f42
Treat more strange pattern
2020-01-19 21:14:47 +09:00
Yuki Okushi
dfab83fe11
Split up if_same_then_else
ui test
2020-01-19 15:04:41 +09:00
Yuki Okushi
7e76a19664
Apply review comments
2020-01-19 10:14:03 +09:00
Yuki Okushi
aab64a21cc
Reduce span range
2020-01-19 10:06:08 +09:00
Yuki Okushi
ae872fe1c7
Rename ok_if_let
to if_let_some_result
2020-01-19 10:06:08 +09:00
Yuki Okushi
9e55424bdc
Apply review comments
2020-01-19 10:06:08 +09:00
Yuki Okushi
9035264a8f
Add suggestion in if_let_some_result
2020-01-19 10:06:08 +09:00
bors
0a7003ecf0
Auto merge of #5065 - matthiaskrgr:rustup_28, r=matthiaskrgr
...
rustup https://github.com/rust-lang/rust/pull/67712
slice_patterns have been stabilized.
changelog: none
2020-01-18 22:44:46 +00:00
Matthias Krüger
b2c4f09d77
rustup https://github.com/rust-lang/rust/pull/67712
...
slice_patterns have been stabilized.
2020-01-18 23:43:28 +01:00
bors
0964b8d192
Auto merge of #5046 - JohnTitor:order-nonminimal-bool, r=flip1995
...
Keep the ordering in `nonminimal_bool` lint
I believe it shouldn't cause any regression but feel free to let me know if you have a doubtful example.
Also, splits up `booleans` ui test.
Fixes #5045
changelog: none
2020-01-18 19:51:46 +00:00
Yuki Okushi
ff0a22d99f
Allow unused_self
lint at the function level
2020-01-18 21:05:42 +09:00
bors
8b72b7251c
Auto merge of #4994 - bradsherman:new_lint_gen, r=flip1995
...
Autogenerate new lints
Add option in clippy_dev to automatically generate boilerplate code for adding new lints
example:
`./util/dev new_lint --name=iter_nth_zero --type=late`
Fixes #4942
changelog: none
2020-01-16 16:24:41 +00:00
flip1995
3c68d892ff
Update custom_ice_message.stderr
2020-01-16 16:01:36 +01:00
Brad Sherman
32337a9b58
Add lint for default lint description
...
- Lint for any new lints that have the default lint description
from the automation
2020-01-15 21:23:08 -06:00
bors
be09bb47db
Auto merge of #5034 - ThibsG:MatchWildErrArmImprove5024, r=flip1995
...
Match wild err arm improvements
This lint should trigger on other identifiers which have `_` prefix (such as `_e`) and only if they are unused in the panic block.
_Note_: the `is_unused` function is greatly inspired from `pat_is_wild` function in [loops lints](43ac9416d9/clippy_lints/src/loops.rs (L1689)
).
I've been considering doing some refactoring, maybe in utils. Maybe this PR or a new one. What do you think ?
fixes #5024
changelog: none
2020-01-15 21:17:21 +00:00
Andre Bogus
2797b64f7e
Omit doc safety/errors header checking for main
2020-01-14 18:20:56 +01:00
Yuki Okushi
3885033e5f
Split up booleans
ui test
2020-01-14 08:32:33 +09:00
bors
c24a42289b
Auto merge of #4543 - xiongmao86:issue4503, r=flip1995
...
Fix issue4503
Fixes #4503 .
changelog: Add a lint checking user are using FileType.is_file() method and suggest using !FileType.is_dir().
- [x] Followed [lint naming conventions][lint_naming]
- [x] Added passing UI tests (including committed `.stderr` file)
- [x] `cargo test` passes locally
- [x] Executed `./util/dev update_lints`
- [x] Added lint documentation
- [x] Run `./util/dev fmt`
2020-01-13 22:09:39 +00:00
Yuki Okushi
73e525019d
Fix the ordering on nonminimal_bool
2020-01-14 07:08:45 +09:00
bors
05cb0df748
Auto merge of #5033 - JohnTitor:split-use-self, r=flip1995
...
Split up `use_self` ui test
Part of #2038
changelog: none
2020-01-13 20:21:04 +00:00
ThibsG
d3c76b5b2a
Change note message
2020-01-13 16:25:35 +01:00
ThibsG
e5c9073f9c
Better binding name on Err for note
2020-01-13 16:25:35 +01:00
ThibsG
f79c47f28d
Match underscore-prefixed variable also
2020-01-13 16:25:35 +01:00
Yuki Okushi
ce1c6b285d
Rustup to rust-lang/rust#68045
2020-01-13 21:55:57 +09:00
xiongmao86
77c48ca341
Fix grammar error.
2020-01-12 19:54:17 +08:00
xiongmao86
8d3cc6b8a9
Change lint message.
2020-01-12 19:54:17 +08:00
xiongmao86
8d333a3cbb
Extend spans to include !.
2020-01-12 19:54:17 +08:00
xiongmao86
a1f81355a7
format codebase.
2020-01-12 19:54:17 +08:00
xiongmao86
3c59eaf91c
Add lint logic.
2020-01-12 19:54:17 +08:00
xiongmao86
3a788452e2
Add test.
2020-01-12 19:54:17 +08:00
Yuki Okushi
291f2cbeb8
Split up use_self
ui test
2020-01-12 06:08:58 +09:00
Yuki Okushi
11fb749a96
Comment out half-open patterns' tests
2020-01-12 03:05:47 +09:00
Yuki Okushi
39947992b5
Rustup to rust-lang/rust#67806
2020-01-11 21:50:00 +09:00
Yuki Okushi
10cf141ebb
Apply review comments
2020-01-11 19:39:43 +09:00
Yuki Okushi
77e5a1b227
Split up missing-doc
ui test
2020-01-10 04:35:37 +09:00
Krishna Sai Veera Reddy
5e058f38f4
Add memory fence tests for invalid_atomic_ordering
2020-01-09 09:51:42 -08:00
Shotaro Yamada
b3971fdd5d
Lint vectored IO in unused_io_amount lint
2020-01-09 23:46:55 +09:00
bors
ac795a6f3a
Auto merge of #4960 - ThibsG:patterns_with_wildcard_#4640, r=flip1995
...
New lint: pats_with_wild_match_arm
Wildcard use with other pattern in same match arm.
The wildcard covers other(s) pattern(s) as it will match anyway.
changelog: add new lint when multiple patterns (including wildcard) are used in a match arm.
Fixes #4640 .
2020-01-09 13:51:00 +00:00
bors
0da0ae3aa6
Auto merge of #5022 - flip1995:useless_attr, r=phansch
...
Fix useless_attribute suggestion
Fixes #5021
changelog: Fix [`useless_attribute`] suggestion, which tripped rustfix
2020-01-08 20:28:19 +00:00
flip1995
6eba66532c
Add regression test for useless_attribute lint
2020-01-08 17:47:01 +01:00
bors
52b9e704c6
Auto merge of #5017 - sinkuu:mir_no_opt_fallout, r=flip1995
...
Fix redundant_clone lint not working with PathBuf and OsString
https://github.com/rust-lang/rust-clippy/pull/4825 diabled MIR optimization in clippy, including `rustc_mir::transform::InstCombine` which reduces `&(*x)` to `x`. This PR tries to unwrap `&*` when looking into `mir::Rvalue`s.
Fixes #5014 .
---
changelog: fixed `redundant_clone` lint not working with `PathBuf` and `OsString`
2020-01-08 12:09:45 +00:00
Yuki Okushi
787106c380
Normalize lint messages in cast_precision_loss
2020-01-08 16:36:02 +09:00
Shotaro Yamada
99eec3f54f
Fix redundant_clone
2020-01-08 14:18:00 +09:00
ThibsG
0fa0df9efb
Span help without suggestion
2020-01-07 19:10:59 +01:00
ThibsG
8ae8b08e32
Change lint name to WILDCARD_IN_OR_PATTERNS
2020-01-07 18:48:16 +01:00
ThibsG
58deaad42d
Handle case for non-exhaustive enums
2020-01-07 18:48:16 +01:00
ThibsG
d60c6f9398
Move to complexity and adapt test
...
- test wildcard_enum_match_arm has been impacted by this new lint
2020-01-07 18:48:16 +01:00
ThibsG
96c4198832
New lint: pats_with_wild_match_arm
...
- Wildcard use with other pattern in same match arm
2020-01-07 18:48:16 +01:00
Yuki Okushi
abc49c3139
Bless 32bit test
2020-01-07 19:56:21 +09:00
Yuki Okushi
f7a93f029c
Apply suggestion from code review
2020-01-07 18:38:12 +09:00
Yuki Okushi
07e33633a3
Update stderrs
2020-01-07 18:38:12 +09:00
bors
fdccfe7bca
Auto merge of #5011 - JohnTitor:split-collapsible-if, r=flip1995
...
Split up `collapsible_if` ui test
Part of #2038
changelog: none
2020-01-07 08:45:14 +00:00
Yuki Okushi
175c78bc17
Split up collapsible_if
ui test
2020-01-07 15:06:23 +09:00
Krishna Sai Veera Reddy
18060eb81e
Split test cases into separate files
2020-01-06 16:39:31 -08:00
Krishna Sai Veera Reddy
9e6a6069a7
Add lint to detect usage of invalid atomic ordering
...
Detect usage of invalid atomic ordering modes such as
`Ordering::{Release, AcqRel}` in atomic loads and
`Ordering::{Acquire, AcqRel}` in atomic stores.
2020-01-06 16:39:31 -08:00
Yuki Okushi
2213989a01
Do not trigger let_and_return
lint on macros
2020-01-07 05:26:20 +09:00
Yuki Okushi
65d15340cd
Fix test again
2020-01-07 02:04:10 +09:00
Yuki Okushi
ce36335cf0
Pick up lost property
2020-01-07 01:54:51 +09:00
Yuki Okushi
2f2eaf8b7e
Rustup to rust-lang/rust#67886
2020-01-07 01:46:33 +09:00
Andre Bogus
539cd25262
External macro check for missing_*_doc
2020-01-04 20:19:14 +01:00
Brad Sherman
ab5ff0352e
Add lint for iter.nth(0)
...
- Encourage iter.next() rather than iter.nth(0), which is less readable
2020-01-04 11:20:11 -06:00
bors
fa9b85d4df
Auto merge of #4881 - krishna-veerareddy:issue-4871-use-mem-take, r=flip1995
...
Use `mem::take` instead of `mem::replace` when applicable
`std::mem::take` can be used to replace a value of type `T` with `T::default()` instead of `std::mem::replace`.
Fixes issue #4871
changelog: Added lint for [`mem_replace_with_default`]
2020-01-04 08:09:43 +00:00