Commit Graph

594 Commits

Author SHA1 Message Date
bors
920112d723 Auto merge of #3824 - phansch:adding_lints, r=phansch
Add lint writing documentation

[Rendered](https://github.com/phansch/rust-clippy/blob/adding_lints/doc/adding_lints.md)

This adds a new documentation page that explains how to write Clippy
lints. It guides the reader through creating a `foo` function lint.

I plan to iterate a bit more on the prose of some sections, but I think the
general structure is fine now, so I'm looking forward to feedback =)

One thing I'm not sure about: I felt like this is too big for CONTRIBUTING.md
so I put it into a new `doc/` directory. I can imagine having more
documentation in the future, so we might even want to create a book using
mdbook instead? Or should everything go into CONTRIBUTING.md?

Further things left to do:

- [x] Link from CONTRIBUTING.md
- [x] Remove things covered in this guide from CONTRIBUTING.md
- [x] Section about `clippy::author` attribute
- [x] Run `remark-lint` on CI over the `doc` directory and fix things
2019-03-09 15:05:38 +00:00
Félix Fischer
ddc718087f Renamed: Cyclomatic Complexity -> Cognitive Complexity
* Ran automatic naming update

* Formalized rename of `cyclomatic_complexity` to `cognitive_complexity`
** Added the rename to `lib.rs`
** Added rename test

* Added warning for deprecated key `cyclomatic_complexity_threshold` and tests for it

* Added deprecation status for Clippy's builtin attribute

* Updated tests for new builtin attribute renaming
2019-03-06 10:07:38 -03:00
Philipp Hansch
0da3521eb6
Reword 'Setup' a bit 2019-03-03 15:03:25 +01:00
Wilfred Hughes
4f8c1d100d
Fix broken markdown in README.md 2019-02-23 00:20:57 +00:00
Manish Goregaokar
50f1dd6af8 Clarify lint groups in readme 2019-02-22 13:29:33 +05:30
Michael Howell
cb1c0b6849 Update README and CHANGELOG 2019-02-17 22:53:08 -07:00
rhysd
83d620b824 run util/dev update_lints and cargo fmt --all 2019-02-03 21:56:24 +09:00
rhysd
9d130a546f add dbg_macro rule to CHANGELOG.md and update count in README 2019-02-01 11:32:22 +09:00
Alex Hamilton
7fa50fb3fe wildcard_match_arm: Update lint count. 2019-01-29 15:33:16 -06:00
Philipp Hansch
c3980bf0bc
Add initial version of const_fn lint 2019-01-29 08:19:05 +01:00
A.A.Abroskin
f11d993c0f Merge branch 'master' into add-lints-aseert-checks
* master: (58 commits)
  Rustfmt all the things
  Don't make decisions on values that don't represent the decision
  Improving comments.
  Rustup
  Added rustfix to the test.
  Improve span shortening.
  Added "make_return" and "blockify" convenience methods in Sugg and used them in "needless_bool".
  Actually check for constants.
  Fixed potential mistakes with nesting. Added tests.
  formatting fix
  Update clippy_lints/src/needless_bool.rs
  formatting fix
  Fixing typo in CONTRIBUTING.md
  Fix breakage due to rust-lang/rust#57651
  needless bool lint suggestion is wrapped in brackets if it is an "else" clause of an "if-else" statement
  Fix automatic suggestion on `use_self`.
  Remove negative integer literal checks.
  Fix `implicit_return` false positives.
  Run rustfmt
  Fixed breakage due to rust-lang/rust#57489
  ...
2019-01-23 11:36:12 +03:00
Manas Karekar
a8157d2de7
Update Readme
Move instruction to the correct step for installing Clippy.
2019-01-12 20:24:52 -05:00
Manas Karekar
09323d7426
Update Readme for (arguably) better readability
Move final instruction to run clippy into a third step in the Readme so it's easier to spot at a quick glance.
2019-01-12 19:42:36 -05:00
bors
91ef4e3ae7 Auto merge of #3646 - matthiaskrgr:travis, r=phansch
readme: update travis badge to reflect migration from travis-ci.org to travis-ci.com
2019-01-11 01:11:34 +00:00
A.A.Abroskin
58abdb5918 run ./util/dev update_lints 2019-01-09 21:31:29 +03:00
Matthias Krüger
144f01f381 readme: update travis badge to reflect migration from travis-ci.org to travis-ci.com 2019-01-09 00:50:32 +01:00
Philipp Hansch
38d4ac7cea
Remove all copyright license headers
Discussion previously happened in https://github.com/rust-lang/rust/pull/43498
2019-01-08 21:46:39 +01:00
Konrad Borowski
34daf09aa4 cast_ref_to_mut lint 2019-01-07 14:37:28 +01:00
Matthias Krüger
3389a68834 Revert "Auto merge of #3603 - xfix:random-state-lint, r=phansch"
This reverts commit 0a6593cd1b, reversing
changes made to 5277a1fb6c.

This hopefully fixes #3628
2019-01-05 10:19:04 +01:00
bors
0a6593cd1b Auto merge of #3603 - xfix:random-state-lint, r=phansch
random_state lint
2019-01-03 02:00:46 +00:00
bors
61bfb39e3f Auto merge of #3593 - mikerite:readme-syspath-2, r=phansch
Update README local run command to remove syspath

Since #3257 was reverted, including the sysroot in RUSTFLAGS gives the
error `Option 'sysroot' given more than once`
2018-12-30 11:45:38 +00:00
Konrad Borowski
a6c4eaa93c random_state lint 2018-12-30 02:45:34 +01:00
Michael Wright
f4cf82ce7d Update README local run command to remove syspath
Since #3257 was reverted, including the sysroot in RUSTFLAGS gives the
error `Option 'sysroot' given more than once`
2018-12-29 07:59:33 +02:00
Russell Greene
d127aed737 Merge new_without_default_derive into new_without_default 2018-12-28 10:57:58 -07:00
bors
d3c747c752 Auto merge of #3569 - phansch:update_contributing, r=flip1995
Change contrib.md hierarchy, link to it from readme

'How Clippy works' and 'How to fix nightly failures' are not exactly part
of 'Writing code'.
2018-12-22 09:18:39 +00:00
Philipp Hansch
cef8f57082
Remove header link 2018-12-22 10:16:52 +01:00
Philipp Hansch
ff634e2350
Change contrib.md hierarchy, link to it from readme
'How Clippy works' and 'How to fix nightly failures' are not exactly part
of 'Writing code'.
2018-12-21 08:11:06 +01:00
Michael Wright
987f260543 Update README local run command to specify syspath 2018-12-19 06:13:43 +02:00
Kampfkarren
e5ea5395b9 Update lint definitions 2018-12-13 09:14:01 -08:00
Philipp Hansch
0c93e4cdb2
s/clippy/Clippy in readme 2018-12-10 22:30:16 +01:00
Philipp Hansch
d4da776ea7
Also add note about using -W clippy::lint_group 2018-12-10 22:22:57 +01:00
Philipp Hansch
04e251f623
readme: tool lints are stable now 2018-12-10 22:04:27 +01:00
Nick Cameron
7220185560
Remove -preview suffix from README 2018-12-06 11:11:50 -05:00
daxpedda
d5d6692288 Added FORCED_RETURN lint. 2018-12-05 01:59:09 +01:00
David Tolnay
e632a1946e
Remove unsafe_vector_initialization lint 2018-12-03 02:48:37 -08:00
Philipp Hansch
93e8c9efc9
Update docs in regards to the merged RFC 2018-11-28 08:11:28 +01:00
Matthias Krüger
2a1c8b1db6 readme: tell how to install clippy on travis from git if it is not shipped with a nightly. 2018-11-26 14:07:21 +01:00
Guillem Nieto
dc35841be4 Update lints 2018-11-25 14:36:04 -08:00
Matthias Krüger
0b8d323304 missed another one in the README 2018-11-22 04:50:00 +01:00
Matthias Krüger
f5929e0797 rust-lang-nursery/rust-clippy => rust-lang/rust-clippy 2018-11-22 04:40:09 +01:00
Yusuf Simonson
866caabb7a Check for common metadata 2018-11-13 08:43:30 -05:00
flip1995
bb4083c412
Run update_lints.py script 2018-11-02 19:50:23 +01:00
kennytm
2d1c9313b0
Added lints into_iter_on_ref and into_iter_on_array. Fix #1565. 2018-11-02 22:53:56 +08:00
flip1995
6819127f1e
run update_lints script 2018-11-02 13:49:10 +01:00
Shotaro Yamada
5285372f68 Run update_lints 2018-10-26 01:16:14 +09:00
HMPerson1
aabf8083bd
Add lint for calling mem::discriminant on a non-enum type 2018-10-24 23:39:54 -04:00
Hidehito Yabuuchi
d334fab4d0 Run util/update_lints.py 2018-10-24 15:00:28 +09:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
8b12eee112
Merge pull request #3233 from rust-lang-nursery/unused-unit
new lint: unused_unit
2018-10-13 09:30:19 +02:00
Andre Bogus
e8687a6677 unused unit lint 2018-10-13 00:42:55 +02:00
sigustin
34fd4af503
Specify which categories are enabled by default
Closes #3293
2018-10-12 12:15:20 +02:00
Oliver Scherer
b8654eaa6c Stabilize tool lints 2018-10-11 12:16:22 +02:00
Manish Goregaokar
492d6852e5 Add license to README 2018-10-06 19:29:01 -07:00
Manish Goregaokar
ca437e81a7 Relicense clippy
Documentation on relicensing in previous commit

Fixes #2885

Also fixes #3093, fixes #3094, fixes 3095, fixes #3096, fixes #3097, fixes #3098,
fixes #3099, fixes #3100, fixes #3230
2018-10-06 09:43:08 -07:00
Manish Goregaokar
b94238f5b3 Mention -A and -W in readme 2018-10-02 10:42:14 +02:00
Michael Wright
f5ffac4fce Implement unnecesary_filter_map lint 2018-09-26 06:52:36 +02:00
Hanaasagi
2b4d9d55b8 fix invalid travis-yaml in README 2018-09-25 22:40:17 +09:00
Jane Lusby
14feb3670f Lint for chaining flatten after map
This change adds a lint to check for instances of `map(..).flatten()`
that can be trivially shortened to `flat_map(..)`

Closes #3196
2018-09-24 14:29:16 -07:00
Philipp Krones
b5c4342ef9
Merge pull request #3195 from JayKickliter/jsk/mem_replace_opt_w_none
Add lint for `mem::replace(.., None)`.
2018-09-23 10:23:48 +02:00
Manish Goregaokar
8e9f1a9d68
Mention rustup self update (fixes #3211) 2018-09-22 14:35:11 -07:00
Jay Kickliter
12c7bc1e58 mem_replace: apply update_lints tool. 2018-09-19 14:41:22 -07:00
Michael Wright
c06551aba7 Update lint list 2018-09-19 07:39:50 +02:00
Matthias Krüger
535f4c2b93 readme: show how to make the travis job fail when using clippy 2018-09-14 11:22:26 +02:00
Philipp Hansch
65b58de545
Explain Travis CI usage
Closes #2432
2018-09-14 08:22:38 +02:00
Philipp Hansch
c9c32a665e
Cleanup README for clippy-preview on stable
With the 1.29 release, the `clippy-preview` component will be available
on stable which means we don't need nightly/beta anymore.
2018-09-13 18:28:10 +02:00
Philipp Krones
49b1a8c775
README: More detailed explanation of tool_lints
cc #3164
2018-09-13 11:27:01 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
63a46b1e1a
Merge pull request #3129 from mipli/3091-numeric-typo
Add lint for misstyped literal casting
2018-09-07 09:54:43 +02:00
Michael A. Plikk
38d287fecd Add lint for misstyped literal casting 2018-09-05 19:46:49 +02:00
Philipp Hansch
273e11fcaf
Trigger rebuild for AppVeyor (and fix grammar) 2018-09-02 11:31:39 +02:00
flip1995
83baf8f5fe Adapt documentation to the tool_lints 2018-08-29 11:08:29 -07:00
Manish Goregaokar
a43f8cf819 some readme clarifications 2018-07-16 13:39:38 -07:00
Jane Lusby
29cae6263b Update readme for new clippy install method 2018-07-16 13:30:16 -07:00
Dale Wijnand
d95d6516b4
Consistently call it "Clippy", not clippy or rust-clippy
As per discussion on the Clippy 1.0 RFC
2018-07-05 11:37:50 +01:00
gnzlbg
7c4ec40346 add missing_inline lint
When turned on, the lint warns on all exported functions, methods,
trait methods (default impls, impls), that are not `#[inline]`.

Closes #1503.
2018-07-04 13:50:39 +02:00
Mateusz Mikuła
a24f77f65a Bump the version 2018-06-29 09:55:20 +02:00
Oliver Schneider
9f8624e5bf Version bump 2018-06-25 18:18:50 +02:00
Philipp Hansch
50027405c3
Link to correct AppVeyor project in Readme 2018-06-21 07:40:29 +02:00
Oliver Schneider
0f848576e9
Update README.md 2018-06-20 20:37:22 +02:00
Mateusz Mikuła
8625cfb988 Version bump 2018-06-18 09:56:58 +02:00
Oliver Schneider
8fe90e41d0 Publish preparation 2018-06-10 06:22:07 +02:00
Oliver Schneider
1c6c79f92c Version bump 2018-06-03 08:59:10 +02:00
Oliver Schneider
ce229b2025 Version bump 2018-05-29 11:58:58 +02:00
Michael A. Plikk
77794e91e2 Create lint for unimplemented!() 2018-05-24 10:04:18 +02:00
Oliver Schneider
fd8a1d20cc
Remove all mention and testing of #[plugin(clippy)] and warn if used 2018-05-11 13:20:39 +02:00
Oliver Schneider
654ff18588
deprecate clippy-as-a-plugin 2018-05-11 11:32:56 +02:00
Philipp Hansch
0557359ecd
Merge pull request #2724 from Caemor/patch-1
Link with https instead of http
2018-05-04 18:43:27 +02:00
Oliver Schneider
642baa91cf
Version bump 2018-05-04 15:54:56 +02:00
Chris
a27baecbdf
Link with https instead of http
The old link caused a mixed content warning on crates.io. This should be fixed now.
2018-05-04 14:23:53 +02:00
Yusuf Simonson
7de706b34b Lint for multiple versions of dependencies 2018-04-30 06:20:39 +07:00
Mateusz Mikuła
cc7d66aa9c rustup 2018-04-27 14:00:43 +02:00
Oliver Schneider
c5b39a5917
Version bump 2018-04-19 08:36:22 +02:00
Oliver Schneider
9dc9487567
Version bump 2018-04-15 15:01:48 +02:00
Oliver Schneider
ba1be0d53b
Explain nursery lints
fixes #2652
2018-04-10 13:50:44 +02:00
Manish Goregaokar
2046694029 Bump version to 0.0.192 2018-04-04 18:00:21 -07:00
Tim Neumann
c7aa8b0458
Add missing clippy_ prefix to lint groups in Readme 2018-04-04 19:49:55 +02:00
Philipp Hansch
fe8ba21962
Readme: Explain nightly install and clippy update 2018-04-02 11:25:04 +02:00
Oliver Schneider
82e771d7dc
Document lint groups 2018-03-29 13:04:52 +02:00
Oliver Schneider
eafb9fe8df
Update test suite 2018-03-28 23:49:32 +02:00
CYBAI
cb9d1727fe Update configuration for leading dot filename 2018-03-25 16:57:15 +08:00
Guido
b52f46d1d1
Change command to run clippy without installation 2018-02-08 12:37:56 +01:00
Guido
45e4f3aac7
Simplify recommended command 2018-02-07 19:24:38 +01:00
Manish Goregaokar
c66eaee77c Nightly only 2018-01-12 16:03:13 +05:30
Philipp Hansch
ab5b7dd7c1
Add link to lints in README configuration section
The wiki has been deprecated.
2018-01-07 12:55:40 +01:00
zmt00
a7f423b114 Fix typos in README, documentation 2018-01-01 13:55:40 -08:00
Clar Charr
8abf9647ce Rearrange README.md.
This suggests `cargo clippy` first, which is probably the best method at this point. It also describes how to enable clippy only when testing.
2017-12-27 11:06:40 -05:00
Darren Tsung
203038cbe5 Add +nightly to command for running cargo build. 2017-12-21 15:24:18 -08:00
Darren Tsung
1d523ce8f7 Add “, add these lines” as well as removing the extra space between the attributes to make it more clear that both should be included. 2017-12-21 15:21:28 -08:00
Philipp Hansch
464f455fe1
Fix license badge anchor link [skip ci]
The anchor name is lowercase, not uppercase.
2017-11-22 21:26:11 +01:00
Oliver Schneider
b90523c860 Merge pull request #2129 from vorner/update-script
Include a conditional update script
2017-10-27 08:57:15 +02:00
cgm616
4960d9de86 Deprecate should_assert_eq lint
This should close #2090.
2017-10-19 23:42:04 -05:00
Michal 'vorner' Vaner
def4a2627d
Include a conditional update script 2017-10-15 10:09:13 +02:00
Joe Rattazzi
46d6f2454e Add link to Rust Github
Linking to the Rust-lang Github repository: https://github.com/rust-lang/rust
2017-10-14 14:47:38 -05:00
Martin Carton
285a33a569 Move the number of lints back to the top of README
This used to be at the top and was moved at the bottom when the big list of lints started to be so ridiculously long that people had to scroll for 10 minutes to have usage information 😄
2017-09-01 20:29:36 +02:00
Oliver Schneider
e5e1afac5f Remove clippy.bashy.io
The service seems to be defunct for a while now
2017-09-01 15:14:49 +02:00
Oliver Schneider
0f0075df09
Update README lint counter message 2017-09-01 12:34:10 +02:00
Oliver Schneider
ff91c6359a
wiki -> docs 2017-09-01 12:34:10 +02:00
Oliver Schneider
c64073b2f5
Deprecate the wiki and remove the lint list from the README (fixes #1933) 2017-09-01 12:34:05 +02:00
Dan Gohman
1ea70116d3 Enable the cast_lossless warning by default. 2017-08-29 05:48:56 -07:00
Dan Gohman
7714203c72 Add a lint for lossless casts. 2017-08-28 08:42:33 -07:00
Andre Bogus
df903edddd New lint: (maybe_)infinite_iter
This fixes #1870 (mostly, does not account for loops yet)
2017-08-25 22:20:52 +02:00
Andre Bogus
70e34077d5 new lint: naive_bytecount 2017-08-22 23:45:08 +02:00
Oliver Schneider
2493176f0e
Version bump 2017-08-21 09:44:53 +02:00
Andre Bogus
f515d7bb67 Change all links to reflect the move to rust-lang-nursery 2017-08-06 23:10:55 +02:00
Andre Bogus
878333fd6c Bump the version 2017-08-06 22:50:19 +02:00
Oliver Schneider
deed00a0a4
Bump the version 2017-08-01 10:19:18 +02:00
Benoît CORTIER
1cae3366ea Add needless borrowed ref lint (WIP). 2017-06-24 12:04:56 +02:00
Oliver Schneider
38925a55b7 Replace Range::step_by checking with Iterator::step_by 2017-06-18 16:12:04 +02:00
Oliver Schneider
6c587004b5
Bump the version 2017-06-16 18:45:07 +02:00
Oliver Schneider
7056018335 Merge pull request #1501 from scott-linder/types-borrow-box
Types borrow box
2017-06-13 11:30:52 +02:00
scott-linder
711cad188a check for borrowed box types 2017-06-11 12:19:11 -04:00
Cameron Steffen
20728fb0d0 fix never_loop 2017-05-30 22:46:02 -05:00
Georg Brandl
3ba4e8b3fa Demote the never_loop lint to Allow for now.
Also add "known problem" to the description, with link to #1586.
2017-05-26 18:02:43 +02:00
Oliver Schneider
9abef6affd
Bump the version 2017-04-27 14:13:14 +02:00
Sebastian Hahn
db11d1fd47 Clarify that -L needs the path to clippy_so's directory
This confused me and led to #1701, hopefully it's clearer now
2017-04-26 12:12:56 +02:00
Yati Sagade
1ee34e7851 Run update_lints.py 2017-04-08 23:31:23 +02:00
Oliver Schneider
c657d603ba
Bump the version 2017-04-07 11:25:00 +02:00
Oliver Schneider
8ae82eb4ab
Merge remote-tracking branch 'origin/master' into 1537-drop_copy 2017-03-24 10:11:46 +01:00
Andre Bogus
30e0c0fc96 fix typos 2017-03-17 21:21:32 +01:00
Oliver Schneider
1369569ac7
Bump the version 2017-02-27 09:48:13 +01:00
Tristian Celestin
b8defc6cc4 Warn on calls to std::mem::drop or std::mem::forget with a Copy type 2017-02-25 23:05:37 -05:00
Oliver Schneider
19929790aa Merge pull request #1561 from Manishearth/zero_ptr
New zero_ptr lint.
2017-02-22 13:34:28 +01:00
Oliver Schneider
27aa309b3d Merge pull request #1556 from sinkuu/take_by_value
Lint needless take-by-value
2017-02-21 13:07:25 +01:00
Oliver Schneider
f07f793fa8 Merge pull request #1544 from bood/master
Add lint for unnecessary casts (cast to same type)
2017-02-21 09:16:07 +01:00
Andre Bogus
2f7babba82 New zero_ptr lint.
This fixes #1047. I did not bother to add a full suggestion,
because replacing with `std::ptr::null()` may still lead to
inference failures.
2017-02-21 04:36:59 +01:00
sinkuu
263e60ce0b Run update_lints.py 2017-02-20 16:55:52 +09:00
sinkuu
0a6bc6031a Rename lint to needless_take_by_value
And fixes false-positives for generics and `match`
2017-02-20 16:02:48 +09:00
sinkuu
d81d961ba7 Lint needless take-by-value 2017-02-19 07:59:44 +09:00
Bood Qian
ee86d46cd1 Update README 2017-02-18 11:13:38 +08:00
Bood Qian
97d46232b4 Merge branch 'master' of github.com:Manishearth/rust-clippy 2017-02-18 11:12:13 +08:00
sinkuu
16e53c9868 Run update_lints.py 2017-02-18 10:14:20 +09:00
Andre Bogus
505eb53d29 New never loop lint
This lint detects loops that unconditionally break or return.

Closes #257
2017-02-17 04:53:14 +01:00