Commit graph

3285 commits

Author SHA1 Message Date
Krishna Veera Reddy
7002a9ee83 Fix false positive with cast_sign_loss lint
`cast_sign_loss` lint incorrectly suggests that the result of
`checked_abs`, `rem_euclid` and `checked_rem_euclid` cannot
be casted to an unsigned integer without loss.
2019-12-05 15:47:15 -08:00
daxpedda
946961d19e
Change to only detect in external macros. 2019-12-05 11:06:13 +01:00
daxpedda
d11b958faf
Fix false positive in string_add. 2019-12-04 21:51:02 +01:00
Matthias Krüger
98e433d70d
Rustup to rust-lang/rust#66878 2019-12-04 01:34:01 +01:00
bors
c66cca44c8 Auto merge of #4877 - flip1995:manual_swap_4853, r=llogiq
Fix FP in manual_swap lint with slice-like types

Fixes #4853

changelog: Fix FP in [`manual_swap`] lint with slice-like types and make it auto applicable
2019-12-03 18:36:19 +00:00
flip1995
c56f72da35
Make OP_REF lint suggestion MaybeIncorrect
cc #2597
2019-12-03 18:37:07 +01:00
Christopher Durham
718558064d
Fire clippy::op_ref on PartialOrd but !Ord types 2019-12-03 18:37:07 +01:00
flip1995
f6a75f17f6
Rustup to rust-lang/rust#66935 2019-12-03 18:37:06 +01:00
flip1995
aa2381d9d0
Fix rustdoc examples 2019-12-03 16:29:05 +01:00
flip1995
1e3b24de43
Make manual_swap autofixable 2019-12-03 13:42:05 +01:00
flip1995
bd39a608a8
Formatting 2019-12-03 13:25:41 +01:00
flip1995
d1d5f790f5
Fix FP in manual_swap lint with slice-like types 2019-12-03 13:25:41 +01:00
flip1995
286b39d2e5
Rustup to rust-lang/rust#64736 2019-12-02 20:39:40 +01:00
Philipp Hansch
474e9a131d
Use assert_crate_local for a more explicit error
`assert_crate_local` does the same as the previous `if let` but with a
more explicit error message if it's not a `ClearCrossCrate::Set`.
2019-12-02 12:09:38 +01:00
Philipp Hansch
6669c2c6ce
Rustup to https://github.com/rust-lang/rust/pull/66789 2019-12-02 09:51:35 +01:00
bors
45196cee02 Auto merge of #4690 - lzutao:fix-test-on-non-amd64, r=flip1995
generate stderr file on 32bit pointer system

changelog: none
2019-12-01 18:39:21 +00:00
Lzu Tao
5488672d1f account for external macro in MISSING_INLINE_IN_PUBLIC_ITEMS lint 2019-12-01 19:38:01 +07:00
Lzu Tao
142b289a51 chore: fix and split some ui tests on 32bit system 2019-12-01 19:07:02 +07:00
Andre Bogus
ef7587d957 Less needless_doctest_main false positives
This checks if a) the `fn main() {}` function is empty or if the doctest contains a `static`. In both cases don't lint.
2019-11-29 21:47:26 +01:00
Philipp Hansch
c1ccba005f
fmt 2019-11-29 20:47:50 +01:00
Philipp Hansch
ad6d8a4700
Make triggering this lint less likely 📎 2019-11-29 20:47:50 +01:00
Philipp Hansch
676f14baa0
Add custom ICE message that points to Clippy repo
This utilizes https://github.com/rust-lang/rust/pull/60584 by setting
our own `panic_hook` and pointing to our own issue tracker instead of
the rustc issue tracker.

This also adds a new internal lint to test the ICE message.

**Potential downsides**

* This essentially copies rustc's `report_ice` function as
  `report_clippy_ice`. I think that's how it's meant to be implemented, but
  maybe @jonas-schievink could have a look as well =)

  The downside of more-or-less copying this function is that we have to
  maintain it as well now.
  The original function can be found [here][original].
* `driver` now depends directly on `rustc` and `rustc_errors`

Closes #2734

[original]: 59367b074f/src/librustc_driver/lib.rs (L1185)
2019-11-29 20:47:47 +01:00
bors
04036877ef Auto merge of #4863 - phansch:use_self, r=flip1995
Move use_self to nursery

Closes #4859

We have a lot of false positives in this lint, so I think it makes sense
to move this to the nursery until they are resolved.

changelog: Move `use_self` lint to nursery, due to many false positives
2019-11-29 18:17:41 +00:00
flip1995
fd7eca2baf
Run update_lints 2019-11-29 14:50:19 +01:00
flip1995
604e6ba0e2
Add projections check to EUV for escape analysis 2019-11-29 12:57:10 +01:00
flip1995
b2523afae4
Use infer_ctxt 2019-11-29 11:12:19 +01:00
Philipp Hansch
70a2a29453
Move use_self to nursery
Closes #4859

We have a lot of false positives in this lint, so I think it makes sense
to move this to the nursery until they are resolved.

changelog: Move `use_self` lint to nursery, due to many false positives
2019-11-29 07:51:49 +01:00
Manish Goregaokar
45842e5131 Fix categorizations 2019-11-28 07:33:12 -08:00
Manish Goregaokar
c1c5c3522d Fix arguments on ExprUseVisitor::new 2019-11-28 07:20:37 -08:00
Manish Goregaokar
dc9d839410 euv moved from middle to typeck 2019-11-28 07:17:56 -08:00
Manish Goregaokar
85bb66480c cmt_ -> Place 2019-11-28 07:09:02 -08:00
bors
dbdd75ab52 Auto merge of #4855 - phansch:rollup-x7yail7, r=phansch
Rollup of 3 pull requests

Successful merges:

 - #4832 (Add some positive examples to lint docs)
 - #4842 ([comparison_chain] #4827 Check `core::cmp::Ord` is implemented)
 - #4847 (fixing a typo)

Failed merges:

changelog: none

r? @ghost
2019-11-28 09:30:16 +00:00
Phil Hansch
a05f3cb9a1
Rollup merge of #4847 - rust-lang:offest, r=phansch
fixing a typo

changelog: none
2019-11-28 10:19:06 +01:00
Phil Hansch
1165176840
Rollup merge of #4842 - timbodeit:comparison-chain-false-positive-4827, r=flip1995
[comparison_chain] #4827 Check `core::cmp::Ord` is implemented

Only emit `comparison_chain` lint, if `cmp` is actually available on the type being compared. Don't emit lint in cases where only `PartialOrd` is implemented.

I haven't yet fully understood [Adjustments](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/adjustment/struct.Adjustment.html). I would appreciate, if someone could double check whether my usage of [expr_ty](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TypeckTables.html#method.expr_ty) in `clippy_lints/src/comparison_chain.rs:91` is correct or if there are cases where using [expr_ty_adjusted](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TypeckTables.html#method.expr_ty_adjusted) would lead to a different result when used with `utils::implements_trait`.

---

fixes #4827
changelog: [comparison_chain] Check `core::cmp::Ord` is implemented
2019-11-28 10:19:05 +01:00
Phil Hansch
6686892cbf
Rollup merge of #4832 - dario23:i4829, r=phansch
Add some positive examples to lint docs

fixes #4829
changelog: Add some positive examples to lint docs
2019-11-28 10:19:04 +01:00
bors
f3288eb48d Auto merge of #4851 - daxpedda:float-arithmetic, r=flip1995
Remove negative float literal checks.

Fixes #4850.

changelog: Remove negative float literal checks.
2019-11-28 09:11:45 +00:00
bors
d377486561 Auto merge of #4821 - Areredify:as_conversions, r=flip1995
Add `as_conversions` lint

changelog: closes #4771, adding a new pedantic allow-by-default lint that lints against any usage of `as`.
2019-11-28 08:53:36 +00:00
bors
d6accfcc82 Auto merge of #4808 - euclio:string-lit-as-bytes, r=phansch
trigger string_lit_as_bytes when literal has escapes

---

changelog: fix string_lit_as_bytes false negative

Depends on rust-lang/rust#66349.

Fixes #4796.
2019-11-28 07:26:04 +00:00
Lzu Tao
d0e0ffa99f make use of Result::map_or 2019-11-28 10:52:20 +07:00
Manish Goregaokar
40c91ec758 config.usize_ty -> config.ptr_width
From http://github.com/rust-lang/rust/pull/66719
2019-11-27 15:09:48 -08:00
Manish Goregaokar
e381143a6b More borrowkind fixes 2019-11-27 15:09:48 -08:00
Manish Goregaokar
3430bc1bc5 Re-add wildcards for BorrowKind in some places 2019-11-27 15:09:48 -08:00
Manish Goregaokar
341e266508 Add BorrowKind::Ref 2019-11-27 14:39:28 -08:00
Andy Russell
d33ad45d7d
trigger string_lit_as_bytes when literal has escapes 2019-11-26 17:07:17 -05:00
daxpedda
e46bedca3c
Remove negative float literal checks. 2019-11-25 19:23:28 +01:00
Mikhail Babenko
9ec8888b91 implemented as_conversions lint
actuall add files

add better example and change pedantic to restriction
2019-11-25 18:12:52 +03:00
flip1995
6eeac46b91
Run rustfmt 2019-11-25 15:20:10 +01:00
Andre Bogus
47ef5394de fixing a typo 2019-11-25 14:06:34 +01:00
flip1995
d2d62de841
Rustup to rust-lang/rust#64856 2019-11-25 13:56:24 +01:00
flip1995
d43c424145
Rustup to rust-lang/rust#66671 2019-11-25 13:18:38 +01:00
Tim Bodeit
fff9a8ea9c [comparison_chain] #4827 Check core::cmp::Ord is implemented
Only emit lint, if `cmp` is actually available on the type being
compared. Don't emit lint in cases where only `PartialOrd` is
implemented.
2019-11-24 10:00:06 +01:00
bors
cc35165f52 Auto merge of #4840 - flip1995:rollup-jqk3a3i, r=flip1995
Rollup of 5 pull requests

Successful merges:

 - #4730 (Fix check_infinite_loop (while_immutable_condition) by checking for break or return inside loop body)
 - #4766 (Fix false positive in derive_hash_xor_eq)
 - #4811 (Literal Representation Restructure)
 - #4820 (doc: fix the comment above the lint function)
 - #4830 (use more efficient code to generate repeated string)

Failed merges:

r? @ghost

changelog: none
2019-11-23 17:40:57 +00:00
Philipp Krones
b4524004e0
Rollup merge of #4830 - lzutao:str-repeat, r=flip1995
use more efficient code to generate repeated string

see https://rust.godbolt.org/z/z9vrFP for comparison

changelog: none
2019-11-23 18:16:03 +01:00
Philipp Krones
ae69bc4980
Rollup merge of #4820 - guanqun:comment-fix, r=flip1995
doc: fix the comment above the lint function

it's a simple comment fix.

---

changelog: none
2019-11-23 18:16:01 +01:00
Philipp Krones
623d8c4640
Rollup merge of #4811 - mikerite:lit_repr_20191113, r=flip1995
Literal Representation Restructure

This pull request restructures the literal_representation module to be easier to understand and maintain. I split the changes into a lot of commits to make reviewing easier.

changelog: none
2019-11-23 18:16:00 +01:00
Philipp Krones
93d84d7dda
Rollup merge of #4766 - phansch:fix_fp_in_derive_hash_xor_eq, r=flip1995
Fix false positive in derive_hash_xor_eq

This fixes a false positive in derive_hash_xor_eq where the lint was
triggering on user-defined traits called `Hash`.

changelog: Fix false positive in `derive_hash_xor_eq`

Fixes #4658
2019-11-23 18:15:59 +01:00
Philipp Krones
016857db65
Rollup merge of #4730 - yerke:fix-check_infinite_loop, r=flip1995
Fix check_infinite_loop (while_immutable_condition) by checking for break or return inside loop body

changelog: Fix check_infinite_loop (while_immutable_condition) by checking for break or return inside loop body
fixes #4648
2019-11-23 18:15:58 +01:00
flip1995
7cc8fa2e25
Fix fallout 2019-11-23 18:09:09 +01:00
flip1995
9b4faf97f3
Run update_lints 2019-11-23 17:57:28 +01:00
flip1995
7db973d06f
Merge remote-tracking branch 'FlorianRohm/issue/4623' into rollup-new-lints 2019-11-23 17:56:13 +01:00
flip1995
353668ee6c
Merge remote-tracking branch 'Areredify/large_stack_arrays' into rollup-new-lints 2019-11-23 17:55:10 +01:00
flip1995
213765a1d3
Merge remote-tracking branch 'popzxc/if-same-cond-fn' into rollup-new-lints 2019-11-23 17:54:26 +01:00
flip1995
d151ef7437
Merge remote-tracking branch 'upstream/zst-offset' into rollup-new-lints 2019-11-23 17:53:41 +01:00
Yerkebulan Tulibergenov
1cba0c9f7d fix check_infinite_loop by checking for break or return inside loop body 2019-11-22 09:13:46 -08:00
flip1995
e4636f3c39
Rustup to rust-lang/rust#66515
Fixes #4835
2019-11-22 13:47:33 +01:00
flip1995
3c308b86c8
Remove never_type feature
Stablized in rust-lang/rust#65355
2019-11-22 13:47:33 +01:00
Igor Aleksanov
bbb8cd4fbb Implement if_same_cond_fn lint
Run ./util/dev

Revert changelog entry

Rename lint to same_functions_in_if_condition and add a doc example

Add testcases with different arg in fn invocation
2019-11-20 06:54:46 +03:00
Johannes Schilling
c6e6b292bd add a good example for the approx_const lint 2019-11-19 20:14:09 +01:00
Johannes Schilling
c58a5c6272 Add suggested good cases in docs for lifetimes lint 2019-11-19 20:03:41 +01:00
lzutao
d229d91d88
use usize::from
Co-Authored-By: Mateusz Mikuła <mati865@users.noreply.github.com>
2019-11-19 23:47:18 +07:00
Lzu Tao
4da0da9281 use more efficient code to generate repeated string
see https://rust.godbolt.org/z/z9vrFP for comparison
2019-11-19 23:08:50 +07:00
Manish Goregaokar
aa5a95f00c Rustup to rustc 1.41.0-nightly (a0d40f8bd 2019-11-18) 2019-11-18 23:49:58 -08:00
Andre Bogus
c21b198576 New lint: zst_offset 2019-11-15 22:39:27 +01:00
Guanqun Lu
f2d8197110 doc: fix the comment above the lint function 2019-11-16 01:55:06 +08:00
Florian Rohm
73806b72a9 register new lint "tabs in doc comments" and update readme 2019-11-15 16:26:30 +01:00
Florian Rohm
f8f7800b18 add new lint tabs in doc comments 2019-11-15 16:25:47 +01:00
Yuki Okushi
0736dd9dfe Rustup rust-lang/rust#66233 2019-11-14 17:44:23 +09:00
Michael Wright
ceb0b2d41a literal repr: ignore more warnings in macros 2019-11-14 08:19:02 +02:00
Michael Wright
75e2dcf56b literal representation: simplification
Simplify calculation in grouping. Add test case to ensure `count()`
can't be zero in that branch.
2019-11-14 07:42:04 +02:00
Areredify
7fddac0404 Add new lint: large stack array
added documentation

minor style fix

change as to ::from

add ignore to doc

include threshold in lint message/make suggestion more apparent/use Scalar api instead of matching

style fix

shange snippet_opt to snippet
2019-11-13 21:44:29 +03:00
Michael Wright
2e9d173be1 literal representation restructure 12
Export function for formatting literals and remove crate visibility from
other items.
2019-11-13 08:28:50 +02:00
Michael Wright
eb9caf3050 literal representation restructure 11
Rename `grouping_hint` to `format` and use the term consistently.
2019-11-13 08:28:06 +02:00
Michael Wright
a8ca8a21c1 literal representation restructure 10
Rename DigitInfo to NumericLiteral
2019-11-13 08:28:01 +02:00
Michael Wright
a9c5a599e3 literal representation restructure 9
Only store valid suffixes (and not mistyped suffixes) in DigitInfo.
Check for mistyped suffixes later and not when DigitInfo is created.
This opens the door to more sophisticated mistyped suffix checks later.
2019-11-13 08:27:54 +02:00
Michael Wright
a58b980bd8 literal representation restructure 8
Store the digit parts directly in DigitInfo since we need them anyway.
2019-11-13 08:27:49 +02:00
Michael Wright
b62543f756 literal representation restructure 7
Replace `do_lint` with `get_group_size`. Return `None` if there are no
groups.
2019-11-13 08:27:42 +02:00
Michael Wright
abf62d8011 literal representation restructure 6
Add `group_digits` helper function.
2019-11-13 08:27:37 +02:00
Michael Wright
ec664e84bf literal representation restructure 5
Use `split_digit_parts` in `check_lit`.
2019-11-13 08:27:27 +02:00
Michael Wright
2d244d3358 literal representation restructure 4
Simplify `grouping_hint` by splitting digits into parts and handling
one at a time.

Fixes #4762
2019-11-13 08:27:19 +02:00
Michael Wright
2e8946a6de literal representation restructure 3
Move suffix check into `check_lit` so that it isn't done repeatedly.
2019-11-13 08:27:14 +02:00
Michael Wright
2dbd34ffe8 literal representation restructure 2
Consolidate warning handling using "poor man's try".
2019-11-13 08:27:05 +02:00
Michael Wright
8f5b4f3f5c literal representation restructure 1
Combine macro expansion checks. Indentation is a little strange to
avoid rustfmt issue.
2019-11-13 08:26:52 +02:00
Andre Bogus
5f0f67375d no more must-use-candidate on trait impls 2019-11-12 23:36:22 +01:00
Andy Russell
add766493a
don't warn on CRLF in with_newline lints 2019-11-12 08:50:22 -05:00
bors
2646b108d5 Auto merge of #4803 - tomprogrammer:issue-4732, r=phansch
Fix false positive in explicit_counter_loop lint

When the counter was used in a closure after the loop the lint didn't detect the
usage of the counter correctly.

changelog: Fix false positive in `explicit_counter_loop`

Fixes #4732
2019-11-11 19:24:20 +00:00
Manish Goregaokar
e9a3e54910 MutImmutable -> Immutable, MutMutable -> Mutable, CaptureClause -> CaptureBy 2019-11-11 10:58:39 -08:00
bors
79d3b30cd7 Auto merge of #4801 - mikerite:to_digit_is_some, r=flip1995
To digit is some

Add a lint that recommends replacing `to_digit().is_some()` with `is_digit()` on `char`s

changelog: Add lint `to_digit_is_some`
2019-11-11 11:28:27 +00:00
Thomas Bahn
c88afce6fc Fix false positive in explicit_counter_loop lint
When the counter was used in a closure after the loop the lint didn't detect the
usage of the counter correctly.
2019-11-11 11:36:53 +01:00
Philipp Hansch
78b7e8544b
Fix false positive in derive_hash_xor_eq
This fixes a false positive in derive_hash_xor_eq where the lint was
triggering on user-defined traits called `Hash`.
2019-11-11 07:59:53 +01:00
bors
338f5e6801 Auto merge of #4780 - flip1995:ice_4775, r=phansch
Fix ICE #4775

Fixes #4775

changelog: Fix ICE with const_generics
2019-11-11 06:23:27 +00:00
Michael Wright
c1fd75005e Fix breakage due to rust-lang/rust#65324 2019-11-11 06:22:50 +02:00
Michael Wright
89b966cdf1 Really fix to_digit_is_some documentation 2019-11-10 18:00:04 +02:00
Michael Wright
9aefae4226 Fix to_digit_is_some documentation 2019-11-10 17:58:17 +02:00
Michael Wright
a9b5b36769 Fix to_digit_is_some dogfood errors 2019-11-10 15:53:08 +02:00
Michael Wright
5817a4fa06 Add to_digit_is_some lint 2019-11-10 15:52:59 +02:00
Manish Goregaokar
3ef852b74c Rustup to rustc 1.40.0-nightly (ac162c6ab 2019-11-09) 2019-11-09 17:04:42 -08:00
bors
b0b3dc6e76 Auto merge of #4776 - mikerite:fix-4727, r=flip1995
Fix crash in `use-self` lint

Fixes #4727

changelog: Fix crash in `use-self` lint
2019-11-08 22:06:21 +00:00
HMPerson1
94b36d9ca4
dogfood 2019-11-08 15:41:54 -05:00
HMPerson1
d4758420e6
Rustup rust-lang/rust#66188 2019-11-08 15:12:08 -05:00
Michael Wright
9c48a2c39a Merge branch 'master' into fix-4727 2019-11-08 07:15:16 +02:00
Lzu Tao
ff5bf67b94 remove unused warnings 2019-11-08 10:23:42 +07:00
Lzu Tao
acbe224f6a rustup https://github.com/rust-lang/rust/pull/65916 2019-11-08 10:23:42 +07:00
bors
4be144af87 Auto merge of #4697 - Licenser:no-exit, r=flip1995
restriction lint for `std::process::exit`

Addition to #4655 - adds the lint checking for `std::process::exit`

changelog: add restriction lint for `std::process::exit`
2019-11-07 22:05:51 +00:00
bors
426c05ae33 Auto merge of #4758 - mikerite:dec_lit_20191031, r=flip1995
`DecimalLiteralRepresentation` simplification

Remove recalculation of literal value.

changelog: none
2019-11-07 21:06:18 +00:00
bors
842cfb0311 Auto merge of #4757 - evanjs:issue/4748, r=phansch
Fix Deprecated lints don't expand

### Move doc comments inside of declare_deprecated_lint macros so that they are picked up by lintlib.py

### fixes #4748

Unable to `cargo test` locally (I'm on NixOS, and keep getting errors that are similar to those #4714 might solve) but I have verified that all deprecated lints can now be expanded like other lints.

![2019-10-30_21:06:28](https://user-images.githubusercontent.com/1847524/67910501-5815de00-fb59-11e9-9fa2-91fe6a8b9bb9.png)

changelog: Show deprecated lints in lint documentation again
2019-11-07 20:47:14 +00:00
Heinz N. Gies
abdf027df3 Update clippy_lints/src/lib.rs
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-11-07 17:11:06 +01:00
Heinz N. Gies
a984702b50 Update clippy_lints/src/lib.rs
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-11-07 17:11:05 +01:00
Heinz N. Gies
eae6a62db7 Simplify dentry point detection 2019-11-07 17:11:05 +01:00
Heinz N. Gies
ffcf4bec0f Improve function checking 2019-11-07 17:10:18 +01:00
Heinz N. Gies
9471669e46 Exclude main from exit lint 2019-11-07 17:10:18 +01:00
Heinz N. Gies
60c2fdd0b9 Update lints 2019-11-07 17:10:18 +01:00
Heinz N. Gies
695aa59c6d Add lint for exit 2019-11-07 17:10:18 +01:00
flip1995
08fd397c2c
Deprecate into_iter_on_array lint
This lint was uplifted/reimplemented by rustc.
Rustup to rust-lang/rust#66017
2019-11-07 14:04:29 +01:00
flip1995
e917b01286
Rustup to rust-lang/rust#65884 2019-11-07 13:27:00 +01:00
Manish Goregaokar
305ba73fc1
Rustup to rustc 1.40.0-nightly (7a76fe76f 2019-11-07) 2019-11-07 13:14:40 +01:00
Michael Wright
e3c1aea157 use-self: correctly ignore dummy paths 2019-11-07 05:59:13 +02:00
flip1995
d3e88a58b9
Fix ICE #4775 2019-11-06 18:14:47 +01:00
bors
0be213bb79 Auto merge of #4772 - HMPerson1:tastier_ice_cream, r=flip1995
Use correct TypeckTables when hashing bodies

Fixes #4760

changelog: Fix ICE while hashing block expressions #4760

r? @phansch
2019-11-06 15:50:42 +00:00
Lzu Tao
51632530d7 rustup rust-lang/rust#65776 2019-11-06 17:46:45 +07:00
Michael Wright
a952708b6c Fix crash in use-self lint
Fixes #4727
2019-11-06 07:33:56 +02:00
Lzu Tao
98313bd83a chore: remove unnecessary parentheses around type 2019-11-05 22:05:55 +07:00
HMPerson1
e3d6069e18
Use correct TypeckTables when hashing bodies 2019-11-04 20:03:03 -05:00
Evan Stoll
8ca9c237a0 deprecated_lints: re-fix ASSIGN_OPS lint doc-comment 2019-11-02 14:19:25 -04:00
Evan Stoll
9a2c968f9f deprecated_lints: align doc comment indents with pub LINT_NAME 2019-11-02 14:11:25 -04:00
Evan Stoll
1acea2e4fc deprecated_lints: remove extraneous declare_deprecated_lint 2019-11-02 14:11:13 -04:00
Michael Wright
4e78547e6f DecimalLiteralRepresentation simplification
Remove recalculation of literal value.
2019-10-31 09:13:08 +02:00
Evan Stoll
94e35510ae Fix #4748 - Deprecated lints don't expand
- Move doc comments inside of declare_deprecated_lint macros so that they are picked up by lintlib.py
2019-10-30 21:05:23 -04:00
Michael Wright
5ce8990885 Simplify approx const truncation check 2019-10-29 08:34:05 +02:00
Matthias Krüger
ece5f862c4 rustup https://github.com/rust-lang/rust/pull/65792/ 2019-10-28 15:15:28 +01:00
flip1995
1e1d45a005
Move manual_mul_add into nursery 2019-10-26 19:57:01 +02:00
bors
bfef48f185 Auto merge of #4721 - phansch:fix_try_err_in_ext_macro, r=flip1995
Don't emit try_err lint in external macros

changelog: Fix [`try_err`] false positive in external macros

Closes #4709
2019-10-24 17:53:42 +00:00
flip1995
b2616641d9
Fix dogfood findings 2019-10-24 14:39:19 +02:00
flip1995
562cc63b7e
Fix lint_without_lint_pass lint 2019-10-24 13:54:18 +02:00
flip1995
237e168b89
Fix tests 2019-10-24 13:29:51 +02:00
flip1995
ef02e3a755
Run ./util/dev fmt 2019-10-24 11:55:22 +02:00
flip1995
5f4b5b91d7
Rustup to rust-lang/rust#65657 2019-10-24 11:54:11 +02:00
Mark Rousskov
7e77f3c29f
Update clippy for latest rustc changes
Specifically, this revises the clippy integration to utilize a new
callback to register its lints, as the prior editing of lint store in
Session is no longer possible.
2019-10-24 11:40:45 +02:00
Philipp Hansch
52f52900a4
Don't emit try_err lint in external macros 2019-10-24 07:52:01 +02:00
bors
850dfdae60 Auto merge of #4680 - hellow554:debug_assert_mut_call, r=flip1995
Add lint for debug_assert_with_mut_call

closes #1526

**What does not work:**

* detecting a mut call in the format string itself, e.g. `debug_assert!(false, "{}", vec![1].pop())`
* detecting `*mut T` usage (pointer)

---

changelog: add new lint `debug_assert_with_mut_call`
2019-10-23 20:58:14 +00:00
bors
087e5eaea5 Auto merge of #4691 - HMPerson1:suggest_iter, r=phansch
Fix suggestion of `explicit_counter_loop`

changelog: In the suggestion of `explicit_counter_loop`, if the `for` loop argument doesn't implement `Iterator`, then we suggest `x.into_iter().enumerate()` (or `x.iter{_mut}()` as appropriate). Also, the span of the suggestion has been corrected.

Fixes #4678
2019-10-23 20:12:14 +00:00
Matthias Krüger
b5f73dad90 deps: update cargo_metadata from 0.8.0 to 0.9.0 2019-10-23 17:30:24 +02:00
flip1995
e8d5a9e95c
Use StableHasher in SpanlessHasher 2019-10-22 14:57:44 +02:00
flip1995
ef18ece564
Don't hash spans in SpanlessHasher 2019-10-22 11:17:16 +02:00
Marcel Hellwig
5572476a36 Add lint for debug_assert_with_mut_call
This lint will complain when you put a mutable function/method call
inside a `debug_assert` macro, because it will not be executed in
release mode, therefore it will change the execution flow, which is not
wanted.
2019-10-22 10:39:55 +02:00
Lzu Tao
4c7387e965 rustup https://github.com/rust-lang/rust/pull/65535 2019-10-19 12:27:21 +07:00
HMPerson1
a9cb2b9001
Fix suggestion for ranges 2019-10-18 12:11:15 -04:00
Andre Bogus
d723b35aee Omit proc macros from must_use_candidate 2019-10-18 15:54:25 +02:00
Heinz N. Gies
7f454d8d06 Split out tests 2019-10-18 07:40:48 +02:00
Heinz N. Gies
a7ad78f3eb Add expect
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-10-18 07:37:58 +02:00
Heinz N. Gies
98dc3aabea Add todo and tests 2019-10-18 07:37:58 +02:00
Heinz Gies
8d911fe988 add restirction for unreachable and panic 2019-10-18 07:35:25 +02:00
HMPerson1
4578e5e15e
Fix suggestion span in explicit_counter_loop 2019-10-18 01:15:54 -04:00
HMPerson1
72f3439346
Suggest calling iter if needed in explicit_counter_loop 2019-10-18 00:03:27 -04:00
bors
14a0f36617 Auto merge of #4683 - HMPerson1:inefficient_to_string, r=Manishearth
Add `inefficient_to_string` lint

Closes #4586

changelog: Add `inefficient_to_string` lint, which checks for calling `to_string` on `&&str`, which would bypass the `str`'s specialization
2019-10-17 23:48:55 +00:00
Michael Zhang
2106a23966
Update help text in inefficient_to_string
Co-Authored-By: Manish Goregaokar <manishsmail@gmail.com>
2019-10-17 19:13:32 -04:00
Manish Goregaokar
fcad3cb9ea syntax::ext -> syntax_expand 2019-10-17 15:57:48 -07:00
HMPerson1
106a72592c
Dogfood for inefficient_to_string 2019-10-16 17:12:41 -04:00
HMPerson1
76b44f34b9
Add inefficient_to_string lint 2019-10-16 15:54:20 -04:00
Manish Goregaokar
608d09c26c Rustup to rustc 1.40.0-nightly (237d54ff6 2019-10-15) 2019-10-15 12:29:28 -07:00
flip1995
c9dc2b5f6e
Fix ICE in use_self lint 2019-10-15 15:11:29 +02:00
James Wang
adf58868e9
Change terminology from static to associated 2019-10-15 09:58:12 +02:00
James Wang
8b50599cb4
Switch to OnlyBodies 2019-10-15 09:58:12 +02:00
James Wang
e23a424b31
Change lint to be pedantic 2019-10-15 09:58:11 +02:00
James Wang
e64b27525b
Remove prints 2019-10-15 09:58:11 +02:00
James Wang
664522badd
Add a new lint for unused self 2019-10-15 09:58:11 +02:00
Andre Bogus
cc622608db new lints around #[must_use] fns
`must_use_unit` lints unit-returning functions with a `#[must_use]`
attribute, suggesting to remove it.

`double_must_use` lints functions with a plain `#[must_use]`
attribute, but which return a type which is already `#[must_use]`,
so the attribute has no benefit.

`must_use_candidate` is a pedantic lint that lints functions and
methods that return some non-unit type that is not already
`#[must_use]` and suggests to add the annotation.
2019-10-14 12:09:04 +02:00
Matthias Seiffert
15b433af48 Use match_function_call wherever possible 2019-10-10 20:06:04 +02:00
Matthias Seiffert
37a2de1562 Move match_function_call to utils 2019-10-10 10:57:12 +02:00
bors
db233b0920 Auto merge of #4616 - mati865:license, r=Manishearth
Fix license in Cargo.toml files

Missed in https://github.com/rust-lang/rust-clippy/pull/3269

changelog: none

r? @Manishearth
2019-10-09 16:09:26 +00:00
Nikos Filippakis
5143fe1a78 New lint: suspicious_unary_op_formatting
Lints when, on the RHS of a BinOp, there is a UnOp without a space
before the operator but with a space after (e.g. foo >- 1).

Signed-off-by: Nikos Filippakis <nikolaos.filippakis@cern.ch>
2019-10-09 16:22:00 +02:00
bors
d97fbdbb42 Auto merge of #4635 - Lythenas:suggestions-for-assert-false, r=flip1995
Add assert message to suggestion in lint assertions_on_constants

<!--
Thank you for making Clippy better!

We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.

If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.

If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.

- [x] Followed [lint naming conventions][lint_naming]
- [x] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [x] Executed `./util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `./util/dev fmt`

[lint_naming]: https://rust-lang.github.io/rfcs/0344-conventions-galore.html#lints

Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.

Delete this line and everything above before opening your PR -->

- [x] suggest replacing `assert!(false, "msg")` with `panic!("msg")`
- [x] extend to allow ~~variables~~ any expression for `"msg"`
- ~~suggest replacing `assert!(false, "msg {}", "arg")` with `panic!("msg {}", "arg")`~~

changelog: add assert message to suggestion in lint assertions_on_constants

Work towards fixing: #3575
2019-10-09 08:56:30 +00:00
Ethan Lam
327c91f8c7 Addresses Issue #4001
Fixed typo

Fixes lint name and uses appropriate linting suggestion

changed lint help message

Added autofixable test

Added Autofixable Test

Removed Broken Autofixable File

updated lints

Generated Autofixable/Nonfixable Test Cases

Changed Suggestion Applicability

Updated Lint Count
2019-10-08 08:46:29 -05:00
bors
30a3992e97 Auto merge of #4627 - kerhong:fix-typo-in-inherent-to-string, r=phansch
Fix typo in inherent_to_string documentation

A simple typo fix in `inherent_to_string` and `inherent_to_string_shadow_display` documentation

changelog: none
2019-10-08 07:52:44 +00:00
bors
b690cdb1e7 Auto merge of #4611 - rust-lang:doc-visibility, r=flip1995
account for doc visibility

This fixes #4608.

Also I noticed that the lint failed to look at trait and impl items. There's a small bit of fallout in the code, too, but not enough to warrant its own commit.

changelog: check docs of trait items and impl items, also make `missing_safety_doc` account for visibility
2019-10-08 07:11:26 +00:00
bors
e2393b09ac Auto merge of #4592 - rust-lang:transmute-collection, r=flip1995
New lint: `unsound_collection_transmute`

changelog: Add `unsound_collection_transmute` lint

This fixes #4515
2019-10-08 05:51:07 +00:00
Matthias Seiffert
6ee8d751f6 Reduce duplication 2019-10-07 22:08:00 +02:00
Matthias Seiffert
22f057972f Match any expr for panic message 2019-10-07 20:40:05 +02:00
Matthias Seiffert
d66acc23a9 Make if_chain more readable 2019-10-07 19:13:10 +02:00
Matthias Seiffert
72a5d7b612 Add message to replace assert!(false) help 2019-10-07 19:13:10 +02:00
flip1995
3d39379f9c
Move is_argument check into mutate 2019-10-06 14:49:26 +02:00
flip1995
3aa531c194
Run util/dev fmt 2019-10-05 12:42:09 +02:00
flip1995
3b23092b69
Get rid of rvalue_promotable_map method call 2019-10-05 12:38:38 +02:00
flip1995
b7d473503b
Merge consume and consume_pat in escape analysis
FIXME: This doesn't work and probably needs a rewrite of the lint

See https://github.com/rust-lang/rust-clippy/pull/4628#issuecomment-538574944
2019-10-05 12:23:59 +02:00
Mateusz Mikuła
4f1d907462 Use new format of licenses
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-04 17:40:32 +02:00
flip1995
c420b07191
Fix needless_pass_by_value
This also accidentally improved the spans of the suggestions
2019-10-04 15:39:46 +02:00
flip1995
b46f5b4a98
Rustup to rust-lang/rust#64874
Episode 1 - The simple cases
2019-10-04 15:39:46 +02:00
bors
54bf4ffd62 Auto merge of #4613 - Lythenas:lint-assert_eq-unit_exprs, r=flip1995
Add check for assert_eq macros to unit_cmp lint

changelog: Add check for unit comparisons through `assert_eq!`, `debug_assert_eq!`, `assert_ne!` and `debug_assert_ne!` macros to unit_cmp lint.

fixes #4481
2019-10-04 10:27:44 +00:00
Edgars Baduns
a1137a8439 Fix typo in inherent_to_string documentation 2019-10-04 10:58:53 +01:00
bors
249b6cac3e Auto merge of #4625 - phansch:rollup-qp7ki0h, r=phansch
Rollup of 2 pull requests

Successful merges:

 - #4509 (Fix false-positive of redundant_clone and move to clippy::perf)
 - #4614 (Allow casts from the result of `abs` to unsigned)

Failed merges:

changelog: none

r? @ghost
2019-10-04 06:45:04 +00:00
Phil Hansch
19c58d260b
Rollup merge of #4614 - HMPerson1:abs_cast_unsigned, r=flip1995
Allow casts from the result of `abs` to unsigned

changelog: Allow casts from the result of `abs` to unsigned in `cast_sign_loss`

Fixes #4605
2019-10-04 08:08:59 +02:00
Matthias Seiffert
e333ed0d53 Correctly align doc of mistyped literal suffixes 2019-10-03 22:14:32 +02:00
Matthias Seiffert
5a0a2b383c Remove assert_ne example from doc 2019-10-03 19:53:41 +02:00
Matthias Seiffert
fb25d56799 Mention asserts in doc for unit_cmp lint 2019-10-03 14:35:05 +02:00
Matthias Seiffert
288f02da44
Print assert macro name in backticks
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-10-03 11:43:39 +02:00
Shotaro Yamada
4cded6d901 extern rustc_index 2019-10-03 08:27:47 +09:00
Shotaro Yamada
866729f5db Add comments 2019-10-03 08:10:29 +09:00
Shotaro Yamada
1cee3fe00e Resolve reviews 2019-10-03 08:10:29 +09:00
Shotaro Yamada
a3f403aa50 Apply suggestion
Co-Authored-By: ecstatic-morse <ecstaticmorse@gmail.com>
2019-10-03 08:10:29 +09:00
Shotaro Yamada
667223c35d Add run-rustfix 2019-10-03 08:10:29 +09:00
Shotaro Yamada
301ef6bb2a Fix false-positive of redundant_clone and move to clippy::perf 2019-10-03 08:10:29 +09:00
HMPerson1
0e1dd65c14
Allow casts from the result of abs to unsigned 2019-10-02 17:23:54 -04:00
Matthias Seiffert
3557084b01 Add check for assert_eq macros to unit_cmp lint 2019-10-02 22:48:19 +02:00
Andre Bogus
27fa2b7944 New lint: unsound_collection_transmute 2019-10-02 21:18:00 +02:00
Andre Bogus
e3f143ff0a account for doc visibility 2019-10-02 21:15:28 +02:00
bors
737f0a6bb5 Auto merge of #4599 - lzutao:zero-ptr-suggestion, r=flip1995
Add suggestion for zero-ptr lint

changelog: Improve suggestion of `zero_ptr` lint
2019-10-02 17:16:29 +00:00
Lzu Tao
6b1a8683f4 Add suggestion for zero-ptr lint 2019-10-02 22:38:00 +07:00
Andre Bogus
23a9c02120 New lint: needless_doc_main 2019-10-02 17:17:22 +02:00
flip1995
93bda4876a
Fix ICE #4579 2019-10-02 09:39:04 +02:00
Manish Goregaokar
9e166e09b8 Use new spans for expansion checking in loop lints 2019-10-01 10:17:29 -07:00
Lzu Tao
aa4f3fb537 Clean up some unused vars 2019-09-29 23:46:32 +07:00
Lzu Tao
6e3a0ea6b3 Rustup rust-lang/rust#63492 2019-09-29 22:58:17 +07:00
bors
fe920ebf8b Auto merge of #4593 - james9909:fix-multiple-inherent-impls, r=llogiq
Fix false positive in `multiple_inherent_impl`

changelog: Fix false positive in `multiple_inherent_impl` by ignoring impls derived from macros.

Closes #4578.
2019-09-29 06:21:55 +00:00
Matthias Krüger
5f6e3f35b5 rustup https://github.com/rust-lang/rust/pull/64781/
cc https://github.com/rust-lang/rust/issues/64867
2019-09-28 10:42:41 +02:00
James Wang
189eaa54c6
Ignore impls derived from macros 2019-09-27 20:47:00 -05:00
flip1995
8d8ba14371
Fix author lint 2019-09-27 18:01:04 +02:00
flip1995
4bbd10a585
Rustup to rust-lang/rust#64813 2019-09-27 17:21:20 +02:00
Michael Wright
8b9415cd88 Refactor booleans
Remove unused output from `suggest(..)`
2019-09-27 07:59:34 +02:00
Michael Sproul
4f9d6eea5c
Detect assignment ops in integer_arithmetic 2019-09-27 11:55:42 +10:00
Matthias Krüger
e59d619981 rustup https://github.com/rust-lang/rust/pull/64515
changelog: none
2019-09-26 18:34:43 +02:00
Lzu Tao
54371929d2 Remove unused import 2019-09-26 16:08:30 +07:00
Lzu Tao
a7b7e19f49 Rustup https://github.com/rust-lang/rust/pull/64513 2019-09-26 16:03:36 +07:00
bors
adc1df11b4 Auto merge of #4568 - mikerite:fix-4548, r=flip1995
Fix `nonminimal-bool` false positive

Closes #4548
Closes #3847

changelog: Fix `nonminimal-bool` false positive
2019-09-26 08:06:16 +00:00
bors
4d30b08027 Auto merge of #4569 - james9909:add-comparison-chain, r=oli-obk
Add a new lint for comparison chains

changelog: Adds a new lint: `comparison_chain`.

`comparison_chain` lints all `if` conditional chains where all the conditions are binary comparisons on the same two operands and will suggest a rewrite with `match`.

Closes #4531.
2019-09-26 07:38:08 +00:00
Lzu Tao
08ce6bc6d9 Fix macro expansion in toplevel_ref_arg lint 2019-09-26 08:46:51 +07:00
Manish Goregaokar
49374a4380 Downgrade op_ref to a MaybeIncorrect suggestion 2019-09-25 14:53:48 -07:00
Manish Goregaokar
d28dacb33a redundant_pattern_matching: make rustfixable 2019-09-25 14:45:18 -07:00
Manish Goregaokar
a83a8dccba redundant_closure_call: split tests into fixable 2019-09-25 14:45:18 -07:00
Manish Goregaokar
ad0e7c8e7f map_unit_fn: fix applicability 2019-09-25 14:45:18 -07:00
Manish Goregaokar
1090509564 non_copy_const: remove incorrect suggestion 2019-09-25 14:45:18 -07:00
Manish Goregaokar
980650eec2 needless_collect: fix suggestion, make test rustfixable 2019-09-25 14:45:18 -07:00
Manish Goregaokar
7f822e742d needless_borrowed_ref: fix false positive, make rustfixable 2019-09-25 14:45:18 -07:00
Manish Goregaokar
4368771548 map_entry test: Fix semicolon, add run-rustfix 2019-09-25 14:45:18 -07:00
Manish Goregaokar
d445bf2e89 Remove suggestion for complex map_entry cases 2019-09-25 13:54:53 -07:00
Manish Goregaokar
b5cadd734e ignore single-match for or patterns 2019-09-25 13:34:55 -07:00
Manish Goregaokar
982c51e769 arm.pats -> arm.pat 2019-09-25 12:52:16 -07:00
Michael Wright
89cdd26e71 Refactor booleans
Inline `snip (..)` function
2019-09-25 06:40:04 +02:00
James Wang
2f34576c18
Update refactor according to code review 2019-09-24 19:07:03 -05:00
James Wang
7e8afe2001
Fix example in docs 2019-09-24 17:05:43 -05:00
James Wang
52408f5b7d
Add a new lint for comparison chains 2019-09-24 16:55:05 -05:00
Michael Wright
0cc48ad9f9 Fix nonminimal-bool false positive
Closes #4548
Closes #3847
2019-09-24 08:13:50 +02:00