Commit graph

1405 commits

Author SHA1 Message Date
mcarton
d7ba66bf44
Automatically defines the clippy feature 2016-06-08 21:53:58 +02:00
Oliver Schneider
8d5524f1da
clippy should work on all systems 2016-06-06 16:43:58 +02:00
Oliver Schneider
a81181b758
don't abort after successfully linting a target 2016-06-06 11:28:09 +02:00
Oliver Schneider
078cc68c52
no indexing 2016-06-02 17:39:28 +02:00
Oliver Schneider
7bb8ba4631
process more kinds of metadata 2016-06-02 17:29:25 +02:00
Oliver Schneider
80e81d351d
add version check to the unit tests 2016-05-30 12:47:04 +02:00
Oliver Schneider
e6a089efa9
dogfood 2016-05-30 11:32:02 +02:00
Oliver Schneider
0818e70497
don't require cargo clippy to pass a --lib or --bin x argument 2016-05-30 11:32:02 +02:00
Oliver Schneider
bf227f4729
split clippy into lints, plugin and cargo-clippy 2016-05-27 13:03:58 +02:00
Oliver Schneider
5eca09793e
needless_borrow reported on &&T when only &T implements Trait and &Trait is required 2016-05-27 12:12:38 +02:00
mcarton
8ac545d0fe Fix documentation 2016-05-26 00:08:31 +02:00
llogiq
4c347320be Merge pull request #955 from Manishearth/regexes
Regexes
2016-05-26 00:00:07 +02:00
mcarton
51d166f17a Support RegexBuilder 2016-05-25 21:36:51 +02:00
mcarton
4f11f84dee Lint binary regexes 2016-05-25 21:14:14 +02:00
Oliver Schneider
bb69e60b30
fix no_effect lint 2016-05-25 18:51:35 +02:00
Oliver Schneider
e90a0be923
simplify mut_mut lint 2016-05-25 10:40:25 +02:00
Andre Bogus
9cfc42275d Split new_without_default and new_without_default_derive.
This is still very slow, because we do a trait lookup for each field.
Perhaps storing the visited types in a set to reuse types would improve
performance somewhat. Also we may want to pre-decide some known types
(e.g. `Vec<T>`, `Option<T>`).
2016-05-24 18:22:18 +02:00
Benoît Zugmeyer
7a9dac4e1c Let cargo-clippy exit with a code > 0 if some error occured 2016-05-23 22:35:00 +02:00
mcarton
ac2e175c1b
Rustup to *1.10.0-nightly (476fe6eef 2016-05-21)* 2016-05-23 16:36:10 +02:00
mcarton
6dd608e53e
Rustup to *1.10.0-nightly (764ef92ae 2016-05-19)* 2016-05-23 16:11:28 +02:00
mcarton
2a5416d662
Rustup to *1.10.0-nightly (9c6904ca1 2016-05-18)* 2016-05-23 16:11:19 +02:00
Manish Goregaokar
973ae82d72 Merge branch 'pr-942' 2016-05-18 13:13:35 +05:30
mcarton
ca05e93c10 Rustup to *1.10.0-nightly (cd6a40017 2016-05-16)* 2016-05-17 23:25:20 +02:00
Manish Goregaokar
6a309af2f3 Don't panic if cargo rustc fails 2016-05-16 23:13:47 +05:30
Manish Goregaokar
f2f5fefd00
Allow invalid upcast comparisons 2016-05-16 22:52:22 +05:30
Martin Carton
4c4b1af03c Merge pull request #928 from oli-obk/unnecessary_operation
add a companion lint to `no_effect` with suggestions for partially (in-)effective statements
2016-05-13 17:45:58 +02:00
Oliver Schneider
1e897f1552 add a companion lint to no_effect with suggestions for partially effective statements 2016-05-13 16:43:47 +02:00
Martin Carton
e890bb5e4b Merge pull request #921 from afck/master
fix typos
2016-05-13 12:13:23 +02:00
Andreas Fackler
87df6ae8cb fix typos 2016-05-13 08:50:51 +03:00
mcarton
a9bea1f52b
Rustup to *1.10.0-nightly (22ac88f1a 2016-05-11)* 2016-05-12 21:22:38 +02:00
Oliver Schneider
610883b7aa
don't suggest closures over constants
fixes #917
2016-05-12 10:23:06 +02:00
llogiq
8fa68f1e08 Merge pull request #913 from oli-obk/assign_ops
suggest `a op= b` over `a = a op b`
2016-05-11 23:36:10 +02:00
llogiq
c170aa262a Merge pull request #915 from Manishearth/sysroot
Use rustc --print sysroot, bump to v66 r? @llogiq
2016-05-11 21:56:52 +02:00
llogiq
f966778770 Merge pull request #914 from oli-obk/non_expressive_names
similar_names fixes
2016-05-11 21:55:38 +02:00
Manish Goregaokar
03a309d182
Use rustc --print sysroot, bump to v66 2016-05-11 11:07:37 -07:00
Oliver Schneider
b0d008bc9d
add known problems 2016-05-11 17:04:27 +02:00
Oliver Schneider
f004120495
properly lint function argument patterns in similar_names 2016-05-11 16:45:06 +02:00
Oliver Schneider
49e2570b77
don't lint at the use-site of bad struct field bindings if they're shorthand
fixes #899
2016-05-11 16:44:43 +02:00
Oliver Schneider
c6b4b19a43
suggest a op= b over a = a op b 2016-05-11 15:32:20 +02:00
Josh Stone
11987f5b6f Support either rustup or multirust environment variables
Fixes #910
2016-05-10 13:45:37 -07:00
Manish Goregaokar
855b292cda Merge pull request #681 from oli-obk/split
cargo clippy
2016-05-10 00:41:34 -07:00
Seo Sanghyeon
f227225acd Remove unused imports 2016-05-10 00:35:51 +09:00
Oliver Schneider
654154d8e7
cargo clippy subcommand 2016-05-09 16:47:32 +02:00
Oliver Schneider
ba8653a8da
fallout 2016-05-09 13:08:00 +02:00
Oliver Schneider
6edc6a13d4
needless borrows found in clippy 2016-05-09 13:07:55 +02:00
Oliver Schneider
87faaec7a3
add needless_borrow lint 2016-05-09 13:07:43 +02:00
Manish Goregaokar
d70e7bb5fc Merge pull request #906 from Manishearth/birkenfeld-master
Rustup to *rustc 1.10.0-nightly (62e2b2fb7 2016-05-06)*
2016-05-07 21:31:21 -07:00
mcarton
aa10c93e8f
Fix tests 2016-05-08 01:13:05 +02:00
Oliver Schneider
0a3ab78bde
fix markdown generated from code 2016-05-06 16:09:05 +02:00
mcarton
3ce60e9731 Don’t warn in titles in DOC_MARKDOWN 2016-05-05 21:49:57 +02:00
mcarton
e14e1a7148 Fix issue with DOC_MARKDOWN and punctuation 2016-05-05 21:33:46 +02:00
Georg Brandl
ca743ecb77 rustup: fix breakage in diagnostics API
Also adds a function to add the clippy wiki note, which is used a few times.
2016-05-04 08:54:59 +02:00
Oliver Schneider
3a32c2c596 doc markdown lint shows the exact word location 2016-05-02 14:36:48 +02:00
Oliver Schneider
365644e9e6 doc markdown lint's span shows the line instead of the item 2016-05-02 14:36:33 +02:00
Manish Goregaokar
f6290b622c Merge branch 'pr-890' 2016-05-02 14:43:11 +05:30
Oliver Schneider
ee35c3722a similar_names should be allow-by-default 2016-05-02 10:53:09 +02:00
Oliver Schneider
10f468e679 don't lint similar_names inside #[test] functions 2016-05-02 10:52:55 +02:00
Andre Bogus
0b40ae178a fixed tests, added clippy_restrictions lint group 2016-04-30 23:54:10 +02:00
Andre Bogus
a967440186 lint remainder, document test w/ half expr 2016-04-30 17:11:59 +02:00
Andre Bogus
9a99979cc4 fix #887: New lints for integer/floating-point arithmetic 2016-04-30 04:01:47 +02:00
mcarton
0664394a49 Centralize more paths 2016-04-26 13:43:23 +02:00
mcarton
cf5c1ab0b6 Fix paths resolution
Put more paths into the `utils::paths` module.
2016-04-26 13:31:52 +02:00
Manish Goregaokar
08818de9b7
Rustup to rustc 1.10.0-nightly (645dd013a 2016-04-24); release 0.0.64 2016-04-26 02:10:48 +05:30
Manish Goregaokar
c3d75ad80d
Improve new_without_default docs 2016-04-24 17:15:54 +05:30
Oliver 'ker' Schneider
bf4221c51a cc: early returns are special 2016-04-23 14:30:05 +02:00
llogiq
30f7651271 Merge pull request #867 from Manishearth/#830
Check type for `SINGLE_CHAR_PATTERN`
2016-04-23 10:54:22 +02:00
Andre Bogus
e3d86800ff allow items_after_statements by default 2016-04-23 07:52:45 +02:00
Taylor Cramer
8866ba9e2a Fixed destructor detection in mem_forget 2016-04-21 09:36:39 -07:00
Taylor Cramer
77427b6ead Limited mem_forget error to only Drop types (fails) 2016-04-20 19:24:31 -07:00
Taylor Cramer
5158a08c5b Changed std::mem::forget errors to mem::forget 2016-04-20 18:55:41 -07:00
Taylor Cramer
12ae306630 Ticks around std::mem::forget 2016-04-20 13:33:05 -07:00
Taylor Cramer
7961f59303 Ran update_lints and updated CHANGELOG.md to reflect addition of mem_forget 2016-04-20 13:11:55 -07:00
Taylor Cramer
447940c889 Added lint for mem_forget 2016-04-20 13:10:23 -07:00
mcarton
de9a80cd10 Check type for SINGLE_CHAR_PATTERN
It’d be nicer to actually check for `Pattern` bounds but in the meantime
this needs to be fixed.
2016-04-20 21:16:59 +02:00
Taylor Cramer
4be11e9116 Removed unnecessary restriction of unsafe_removed_from_name to top-level use statements 2016-04-19 21:41:45 -07:00
Taylor Cramer
b793ad7f2f Ran update_lints script 2016-04-19 16:32:04 -07:00
Taylor Cramer
038f528f45 Added lint for use imports which remove unsafe from name 2016-04-19 16:31:26 -07:00
llogiq
0bc067089e add neg_multiply lint (#862)
add neg_multiply lint
2016-04-17 23:33:21 +02:00
Georg Brandl
12b8a0ac14 Make if_not_else lint Allow by default (fixes #859) 2016-04-17 12:54:38 +02:00
mcarton
578cc3dc71 Fix the REGEX_MACRO lint
[rust-lang-nursery/regex#183](https://github.com/rust-lang-nursery/regex/pull/183) has made the following change that broke the lint:

src/re.rs → src/re_unicode.rs
2016-04-15 00:10:17 +02:00
mcarton
a878916ad5 rustfmt all the things 2016-04-14 20:14:03 +02:00
mcarton
cd12a2369a s/paths::LL/paths::LINKED_LIST
All other paths had non-abbreviated names.
2016-04-14 18:41:38 +02:00
mcarton
48a672b4ee Move paths to their own module 2016-04-14 18:38:28 +02:00
mcarton
1789430a49 Add a TEMPORARY_CSTRING_AS_PTR lint 2016-04-14 17:26:07 +02:00
mcarton
831b8fc1b5 Ignore #[test] fns in cyclomatic_complexity 2016-04-14 17:26:07 +02:00
mcarton
fe6e8dac35 More tests in DOC_MARKDOWN 2016-04-13 16:02:44 +02:00
Manish Goregaokar
fbf8fa9daf Merge pull request #851 from Manishearth/doc
Fix FP with `DOC_MARKDOWN` and reference links
2016-04-12 09:22:39 +05:30
mcarton
6c0a486e8b Fix FP with DOC_MARKDOWN and reference links 2016-04-12 00:18:58 +02:00
Andre Bogus
29c058f0af add a note of rust-lang/rust/#31439 to the wiki text 2016-04-11 23:59:52 +02:00
mcarton
9c4ae9295d Markdownify more doc 2016-04-11 23:24:14 +02:00
mcarton
532446d3f8 Rustup to 1.9.0-nightly (7979dd608 2016-04-07) 2016-04-08 17:31:47 +02:00
mcarton
c24ba91123 Rustup to 1.9.0-nightly (bf5da36f1 2016-04-06) 2016-04-08 02:23:14 +02:00
mcarton
ee907b73a4 Fix false positive with DOC_MARKDOWN and 32MiB 2016-04-04 20:25:21 +02:00
mcarton
f46e96405f Rustup to 1.9.0-nightly (5ab11d72c 2016-04-02) 2016-04-03 17:22:10 +02:00
mcarton
eada860aa7 Small fixes in #802 2016-04-02 15:51:28 +02:00
mcarton
51e63a1ae2 Rustup PR #802 2016-04-02 15:43:58 +02:00
Taylor Cramer
d050d601fc Added eq and neq handling to invalid upcast comparisons 2016-04-02 15:32:57 +02:00
Taylor Cramer
90a6117729 Reverted to manual implementation of PartialEq for FullInt 2016-04-02 15:32:57 +02:00
Taylor Cramer
d52d23d662 Erased numeric type to reduce branching 2016-04-02 15:32:57 +02:00
Taylor Cramer
106ae7da44 Invalid upcast comparison cleanup 2016-04-02 15:32:57 +02:00
Taylor Cramer
8687949a29 Tests passing for invalid_upcast_comparisons 2016-04-02 15:32:57 +02:00
Taylor Cramer
c81edfc7b9 Updated lints with script 2016-04-02 15:32:56 +02:00
Taylor Cramer
498e0fba7f Initial attempt at linting invalid upcast comparisons 2016-04-02 15:32:36 +02:00
Manish Goregaokar
c150ae7824 Merge pull request #826 from Manishearth/patho-bool
Ignore pathological cases in boolean lint
2016-04-01 21:32:41 +05:30
Manish Goregaokar
6b0eb10769 Ignore pathological cases in boolean lint (#825) 2016-04-01 21:24:31 +05:30
mcarton
f16da4fdda Fix false positive with DOC_MARKDOWN and links 2016-04-01 17:24:55 +02:00
mcarton
8bfe38c432 Improve the match_same_arms doc 2016-04-01 13:14:39 +02:00
Andre Bogus
4c6c84e0a1 fix #820 2016-04-01 10:33:17 +02:00
Oliver Schneider
73ee3e6f36 whitelist more non-expressive-name false positives 2016-03-31 17:35:00 +02:00
mcarton
9438f4f263 Rustup to 1.9.0-nightly (30a3849f2 2016-03-30) 2016-03-31 17:15:23 +02:00
mcarton
7095b5df31 Fix FP in REDUNDANT_CLOSURE with divergent functions 2016-03-30 23:12:24 +02:00
Oliver Schneider
f03d93e05e better whitelisting of "confusable" binding names 2016-03-30 17:05:15 +02:00
Oliver Schneider
d3362a2222 don't lint on binding names where only a numeric char changes to another numeric 2016-03-30 16:40:21 +02:00
Oliver Schneider
77652243ae minor code readability improvements 2016-03-30 16:39:25 +02:00
Oliver Schneider
2917484130 make nonminimal_bool allow-by-default 2016-03-30 12:55:59 +02:00
Oliver Schneider
fa48ee678a dogfood 2016-03-29 17:20:30 +02:00
Oliver Schneider
e9c87c777c !(a == b) --> a != b 2016-03-29 17:18:47 +02:00
Oliver Schneider
b05dd13f2c added brackets and fixed compiler comments 2016-03-29 16:55:38 +02:00
Oliver Schneider
216edbae59 accidentally forgot about improvements if there were multiplie candidates 2016-03-29 16:27:06 +02:00
Oliver Schneider
96be287f12 detect negations of terminals like a != b vs a == b 2016-03-29 10:45:45 +02:00
Oliver Schneider
3a0791e680 make sure a < b and a >= b are considered equal by SpanlessEq 2016-03-29 10:45:45 +02:00
Oliver Schneider
25bbde091a a small refactoring for readability 2016-03-29 10:45:45 +02:00
Oliver Schneider
dd6bee3b3f collect stats on bool ops and negations in an expression 2016-03-29 10:45:45 +02:00
Oliver Schneider
0f92f84f16 String::extend -> String::push_str 2016-03-29 10:45:45 +02:00
Oliver Schneider
e7013a3e9c update lints 2016-03-29 10:45:45 +02:00
Oliver Schneider
76ab801001 if a < b { ... } if a >= b { ... } what am I doing? 2016-03-29 10:45:18 +02:00
Oliver Schneider
37cee84c44 negations around expressions can make things simpler 2016-03-29 10:45:18 +02:00
Oliver Schneider
03833f666f differentiate between logic bugs and optimizable expressions 2016-03-29 10:45:18 +02:00
Oliver Schneider
288ea79963 treat macros as terminals to prevent cfg! from giving platform specific hints 2016-03-29 10:45:18 +02:00
Oliver Schneider
050d7fd308 fallout and tests 2016-03-29 10:45:18 +02:00
Oliver Schneider
5911ccaba8 merge multiple equal terminals into one 2016-03-29 10:45:18 +02:00
Oliver Schneider
25ed62ff23 improve lint attribute detail 2016-03-29 10:45:18 +02:00
Oliver Schneider
1f1f09ba92 also compute minimal product of sum form 2016-03-29 10:45:18 +02:00
Oliver Schneider
57faa5a9f5 improve bracket display 2016-03-29 10:45:18 +02:00
Oliver Schneider
93d097eb12 better simplification 2016-03-29 10:45:18 +02:00
mcarton
0939f5a2ec Fix false positive in MATCH_SAME_ARMS and guards 2016-03-29 01:39:35 +02:00
mcarton
777e810a39 Add for _ in vec![…] to the USELESS_VEC lint 2016-03-28 23:32:55 +02:00
mcarton
371a5537eb Address nits in DOC_MARKDOWN 2016-03-28 21:24:52 +02:00
mcarton
b1d1f095f1 Improve the DOC_MARKDOWN lint
`_` can be used for emphasize text. `::` is equality as bad outside
ticks.
2016-03-28 21:24:36 +02:00
mcarton
42bf37f49f Add a lint for bad documentation formatting 2016-03-28 21:24:36 +02:00
mcarton
941ec6e4f5 Beautify more docs 2016-03-28 21:24:36 +02:00
mcarton
7877a42308 Fix some spelling mistakes here and there 2016-03-28 21:24:36 +02:00
mcarton
e7158dc8f1 s/cx.span_lint/span_lint(cx, / 2016-03-28 18:05:43 +02:00
mcarton
2d5e3f3118 Lint transmute from ptr to ref 2016-03-28 18:05:43 +02:00
Manish Goregaokar
204034e8fa Fix ICE 2016-03-28 01:58:57 +05:30
josephDunne
aa819b7748 Update rust-clippy to rustc 1.9.0-nightly (d5a91e695 2016-03-26)
move cfg, infer, traits and ty from middle to top-level
move middle::subst into middle::ty
track the extern-crate def-id rather than path (rustc ab9b844)
2016-03-27 20:24:10 +01:00
Manish Goregaokar
f51293c399 Rm extraneous infcx 2016-03-27 04:57:25 +05:30
Manish Goregaokar
fcfda681e5 Stop using ast_ty_to_ty_cache
It's not reliable and gets cleared`
2016-03-27 04:24:55 +05:30
Manish Goregaokar
07dc709ba4 Allow trailing commas in if_let_chain 2016-03-27 04:24:42 +05:30
Manish Goregaokar
f3fdbd0d89 Fix ICE with unknown defids 2016-03-27 02:46:37 +05:30
Manish Goregaokar
e37ff5a5c7 Fix ICE with relating late bound regions 2016-03-27 02:46:36 +05:30
Taylor Cramer
b07360eb28 Cleanup and added transmute to ugly path list 2016-03-24 16:38:16 -07:00
Taylor Cramer
6adb9cb53f Added crosspointer transmute error and tests 2016-03-24 15:48:38 -07:00
Manish Goregaokar
7e65493599 Merge pull request #795 from mcarton/deprecated
Deprecates 4 lints
2016-03-25 00:40:37 +05:30
mcarton
15e55f5df5 Deprecates 4 lints
Namely STR_TO_STRING, STRING_TO_STRING, UNSTABLE_AS_SLICE and
UNSTABLE_AS_MUT_SLICE.
2016-03-24 19:56:48 +01:00
Vincent Prouillet
341b7d3f6b Update float_cmp message 2016-03-24 17:07:55 +00:00
Jascha
a7f662d8f2 Match attributes in FnKind patterns 2016-03-23 16:11:24 +01:00
Manish Goregaokar
523c596171 Merge pull request #727 from oli-obk/similar_names
lint on binding-names that are too similar
2016-03-21 10:35:36 +05:30
Andre Bogus
6164eabc3c fixed the build 2016-03-20 21:24:18 +01:00
Jan-Erik Rediger
7d3e6da3cb Fix typo in new_without_default docu 2016-03-20 20:32:22 +01:00
mcarton
ef72110684 Fix new_without_default with lts and generics 2016-03-18 19:12:32 +01:00
Oliver Schneider
6a566a1009 use snippet_opt and span_suggestion 2016-03-18 14:06:39 +01:00
Oliver Schneider
9dc282e31d improve needless_bool to catch odd construct in non_expressive_names 2016-03-18 14:06:39 +01:00
Oliver Schneider
ea1c2406cc make single char names threshold configurable 2016-03-18 14:06:39 +01:00
Oliver Schneider
24cdb14d5a refactor for speed 2016-03-18 14:06:39 +01:00
Oliver Schneider
aa1ecb6fce fix and rebase 2016-03-18 14:06:39 +01:00
Oliver Schneider
077481053c refactoring and bugfix 2016-03-18 14:06:39 +01:00
Oliver Schneider
463897fd39 lint on too many single character bindings 2016-03-18 14:06:39 +01:00
Oliver Schneider
5373ffdeb8 suggest inserting underscores for simple cases 2016-03-18 14:06:39 +01:00
Oliver Schneider
06ca1fc0a6 lint on binding-names that are too similar 2016-03-18 14:06:39 +01:00
Oliver Schneider
64110f16dd fix Eq+Hash for Constant 2016-03-17 12:23:54 +01:00
Oliver Schneider
432d9fec38 refactor clippy-consts to use ConstInt 2016-03-17 12:23:54 +01:00
Martin Carton
fe1ded0228 Merge pull request #773 from mcarton/rustup
Rustup to *1.9.0-nightly (c66d2380a 2016-03-15)*
2016-03-16 20:05:38 +01:00
mcarton
1ac6efedd1 Rustup to *1.9.0-nightly (c66d2380a 2016-03-15)* 2016-03-16 19:27:59 +01:00
mcarton
8282a3a426 Fix problem in PANIC_PARAMS with inner format! 2016-03-15 21:05:37 +01:00
mcarton
251c3eefd1 Use span_suggestion in STRING_LIT_AS_BYTES 2016-03-15 20:35:41 +01:00
mcarton
6d4e1bd73d Fix false positive with STRING_LIT_AS_BYTES and stringify! 2016-03-15 20:35:41 +01:00
mcarton
1546cc4798 Fix ICE in OUT_OF_BOUNDS_INDEXING with ranges 2016-03-15 20:35:41 +01:00
Oliver 'ker' Schneider
d65953330b rustup const eval changes 2016-03-15 20:09:53 +01:00
Manish Goregaokar
20123eef98 Update to rustc 1.9.0-nightly (6d215fe04 2016-03-14) 2016-03-15 22:55:07 +05:30
Oliver Schneider
d5a01e8789 prevent cc lint from panicking on unreachable code 2016-03-14 17:24:55 +01:00
Manish Goregaokar
eed9baa4fb Merge pull request #698 from mcarton/conf
Add a configuration file and a POC `BLACKLISTED_NAME` lint
2016-03-13 19:33:03 +05:30
mcarton
0774b203f4 Fix false-positive in panic_params
It might still have false positives, but it’s even less likely.
2016-03-12 21:23:57 +01:00
mcarton
7eef989ff4 Add str to types considered by len_zero 2016-03-12 21:23:56 +01:00
mcarton
04d81799a2 Dogfood 2016-03-12 21:23:56 +01:00
mcarton
14dcb60bf8 s/Clippy.toml/clippy.toml 2016-03-12 14:52:09 +01:00
mcarton
aa4daea364 Lint function with too many arguments 2016-03-12 14:52:06 +01:00
mcarton
95e582a338 Don’t make conf errors fatal errors 2016-03-12 14:51:47 +01:00
mcarton
d118b27abb mv src/conf.rs src/utils 2016-03-12 14:51:47 +01:00
mcarton
403c54ec5b White-list third-party in conf files 2016-03-12 14:51:47 +01:00
mcarton
c7db94aee6 Rustfmt 2016-03-12 14:51:47 +01:00
mcarton
a3031e34f9 Add a BLACKLISTED_NAME lint 2016-03-12 14:51:45 +01:00
mcarton
232710cd43 Add configuration variables to wiki 2016-03-12 14:50:46 +01:00
mcarton
1841804d43 Use configuration in the TYPE_COMPLEXITY lint 2016-03-12 14:50:46 +01:00
mcarton
29c0c2bb09 Start implementing a configuration file 2016-03-12 14:50:46 +01:00
mcarton
2f13c3bdef Small nits on INDEXING_SLICING 2016-03-11 22:10:40 +01:00
Adolfo Ochagavía
87ef5f4d3b Lint against indexing and slicing
This can be useful to prevent panics in a codebase. ATM it is a pedantic
lint, but in the future it should be added to the restricions group.
2016-03-11 21:30:35 +01:00
mcarton
a38958b8d9 Fix unsugar_range with .. 2016-03-11 20:27:33 +01:00
mcarton
c6316df19f Rustup to 1.9.0-nightly (c9629d61c 2016-03-10) 2016-03-11 14:18:56 +01:00
mcarton
9cfc6124a3 Improve the MATCH_REF_PATS suggestions 2016-03-09 16:22:31 +01:00
mcarton
3ab4914a29 Handle the new TryDesugar variant 2016-03-09 16:10:24 +01:00
Manish Goregaokar
d9b5b2a264 Merge pull request #730 from mcarton/unused-labels
Lint unused labels and types with `fn new() -> Self` and no `Default` impl
2016-03-09 11:26:44 +05:30
mcarton
052f5984e7 Fix types comparison 2016-03-08 17:00:44 +01:00
mcarton
8e9e858b78 Remove uses of ast_ty_to_ty_cache 2016-03-08 17:00:44 +01:00
mcarton
d7129f560d Lint types with fn new() -> Self and no Default impl 2016-03-08 17:00:37 +01:00
mcarton
204c12c99e Lint unused labels 2016-03-08 16:43:40 +01:00
Oliver Schneider
bf20b40664 fix cyclomatic complexity lint triggering because of short circuit operations 2016-03-08 15:10:02 +01:00
llogiq
08b7931b6b Merge pull request #741 from martiansideofthemoon/blastoise
Linting classical overflow checks
2016-03-08 09:50:00 +01:00
KALPESH KRISHNA
9faffd2870 Adding symmetric lints and test cases 2016-03-08 13:39:44 +05:30
mcarton
8bbd8b0b92 Fix ICE in for_loop with globals 2016-03-07 23:32:43 +01:00
KALPESH KRISHNA
d6d409414e Adding underflow checks and tests 2016-03-08 02:57:45 +05:30
KALPESH KRISHNA
55fbf59f3b Linting classical overflow checks. 2016-03-08 02:48:42 +05:30
mcarton
3c3a4549a8 Fix tests with inclusive ranges 2016-03-07 16:55:12 +01:00
mcarton
13bb22a68b Remove all ExprRange
Rustup to rustc 1.9.0-nightly (998a6720b 2016-03-07)
2016-03-07 16:31:38 +01:00
mcarton
eb0a493442 Implement struct literal equality 2016-03-07 16:30:02 +01:00
mcarton
2abb775de5 Fix dogfood 2016-03-06 14:10:04 +01:00
Manish Goregaokar
f69e09ab0e Merge branch 'pr-737' 2016-03-05 23:41:34 +05:30
KALPESH KRISHNA
e421a0f8a3 Warn about calling a closure in the same expression where it's defined. 2016-03-05 22:41:52 +05:30
Oliver Schneider
e7fa117ff8 simplify cyclomatic complexity auxiliarly value computation
previously the HIR was unnecessarily traversed twice
2016-03-04 16:27:03 +01:00
mcarton
c7bf068121 s/ctxt/TyCtxt 2016-03-04 14:25:34 +01:00
mcarton
79b0ad7441 vec! now uses box 2016-03-03 20:09:31 +01:00
Manish Goregaokar
100ca33742 Rust upgrade to 2016-03-02 nightly 2016-03-03 01:24:20 +05:30
Manish Goregaokar
bd45cfd273 rustfmt 2016-02-29 21:35:51 +05:30
Oliver Schneider
3b7720f992 lint ! and != in if expressions with else branches 2016-02-29 12:34:48 +01:00
Oliver Schneider
67213c9be4 lint unportable clike enum discriminants 2016-02-29 09:36:13 +01:00
llogiq
105a14f547 Merge pull request #721 from mcarton/while_let_loop
Fix wrong suggestion in `WHILE_LET_LOOP`
2016-02-28 22:49:56 +01:00
mcarton
76004306cc Lint manual swaps 2016-02-28 12:16:13 +01:00
mcarton
5fadfb3ea6 Fix wrong suggestion in WHILE_LET_LOOP
Ok, I lied in the title. This basically *removes* the problematic part
but:
  1) it was ugly with big bodies;
  2) it was not indented properly;
  3) it wasn’t very smart (see #675).
2016-02-28 12:09:28 +01:00
mcarton
72ef26272d Lint foo = bar; bar = foo sequences 2016-02-28 00:02:43 +01:00
mcarton
05178c92b9 Cleanup 2016-02-27 18:18:58 +01:00
mcarton
3a5b9a707c Fix (new?) rustc warnings 2016-02-27 18:18:58 +01:00
mcarton
1c3cce8ba5 Add a lint about suspiciously formatted else if 2016-02-27 18:18:53 +01:00
mcarton
810de56079 Add a lint about suspiciously formatted =@ ops
For `@` in {`*`, `!`, `-`}.
2016-02-27 17:57:36 +01:00
mcarton
62cbd87728 Fix false positive in FOR_KV_MAP and &mut refs 2016-02-26 12:51:26 +01:00
llogiq
b3ffc1868f Merge pull request #689 from mcarton/entries
Improve the `MAP_ENTRY` lint
2016-02-26 12:18:34 +01:00
Manish Goregaokar
f13b841282 Merge branch 'pr-704'
Conflicts:
	src/len_zero.rs
2016-02-25 01:38:08 +05:30
mcarton
783437eef0 Use span_suggestion in loops lints 2016-02-24 20:54:35 +01:00
mcarton
7b1a0a9434 Macro check len_zero 2016-02-24 20:53:15 +01:00
mcarton
c1b2fe31b7 Use span_suggestion in len_zero 2016-02-24 20:52:47 +01:00
mcarton
b753e77cbe Rustfmt and sort all use items 2016-02-24 17:38:57 +01:00
mcarton
3b783152cc Fix ICE with match_def_path 2016-02-22 20:00:51 +01:00
mcarton
2a0fb1fb44 Limit USELESS_FORMAT with args to string args 2016-02-22 17:54:46 +01:00
Martin Carton
c47d5a615f Merge pull request #690 from quininer/fix-nightly
fix nightly (2016-02-17)
2016-02-21 15:38:31 +01:00
mcarton
d77ccdc338 Fix USELESS_FORMAT wiki 2016-02-21 13:21:04 +01:00
mcarton
1a64a4890c Small cleanup 2016-02-20 21:20:56 +01:00
mcarton
ba3be83488 Lint about format!("{}", foo) 2016-02-20 21:15:05 +01:00
mcarton
b6443b9928 Replace all format!("{}", foo) calls 2016-02-20 21:03:45 +01:00
mcarton
ef4401d4ac Lint about usage of format!("string literal") 2016-02-20 17:46:20 +01:00
mcarton
222086d62b Remove all use of format!("string literal") 2016-02-20 17:46:20 +01:00
mcarton
5fe6e9f911 Build the import lint in update_lints.py 2016-02-20 17:46:16 +01:00
quininer kel
35a48bf512 fix nightly
9b40e1e5b3
2016-02-19 04:16:39 +08:00
Manish Goregaokar
78b31c61bd Merge pull request #688 from Manishearth/fix-671
improve str_add_assign lint description
2016-02-19 01:43:23 +05:30
mcarton
aa1df8e9ff Improve the MAP_ENTRY lint
Don’t span a suggestion when not appropriate but use a note and don’t
force it to be `if !cond`.
2016-02-18 20:19:16 +01:00
llogiq
1fd0676fa3 improve str_add_assign lint description 2016-02-18 20:12:33 +01:00
Oliver Schneider
add483afed fix enum glob use (again) 2016-02-18 16:08:45 +01:00
Manish Goregaokar
05afde821c Merge pull request #673 from oli-obk/fix/665
don't lint on all caps enum variants starting with the same char
2016-02-18 11:12:58 +05:30
Manish Goregaokar
e659ce1437 Merge pull request #664 from Manishearth/fix_regex
remove Visitor from regex_macro
2016-02-18 10:28:12 +05:30
Martin Carton
7250738edf Merge pull request #679 from mcarton/rustup
Rustup to 1.8.0-nightly (57c357d89 2016-02-16)
2016-02-17 15:53:28 +01:00
mcarton
227ff8c4ad Rustup to 1.8.0-nightly (57c357d89 2016-02-16) 2016-02-17 13:38:44 +01:00
Oliver Schneider
cf536d7a4f fallout 2016-02-17 13:33:32 +01:00
Oliver Schneider
e809eb61d7 fix enum_variant_names linting on all caps enum variants 2016-02-17 13:33:32 +01:00
llogiq
59c8f6210b Merge pull request #669 from shssoichiro/single-char-pattern
Lint single-character strings as P: Pattern args
2016-02-16 14:24:22 +01:00
mcarton
b5ba621f61 Make DERIVE_HASH_NOT_EQ symmetric 2016-02-16 00:15:11 +01:00
Manish Goregaokar
2641c4e126 Merge pull request #670 from Manishearth/better-ice-fix
Make derive lint handle generics correctly
2016-02-16 04:41:23 +05:30
mcarton
cd35b9e38d Fix wrong reported lint for EXPL_IMPL_CLONE_ON_COPY 2016-02-15 22:29:07 +01:00
mcarton
00b27bf7be Fix suggestion in COLLAPSIBLE_IF lint 2016-02-15 17:43:16 +01:00
Joshua Holmer
c22ded11e5 Reword lint documentation
char is faster, proven by benchmark.
2016-02-15 10:32:04 -05:00
Joshua Holmer
643a223f71 Address nits 2016-02-15 09:10:31 -05:00
mcarton
570b963535 Replace potentially ICEgen ast_ty_to_ty_cache 2016-02-15 13:44:59 +01:00
mcarton
d755b1ebe2 Cleanup 2016-02-15 13:25:29 +01:00
Manish Goregaokar
1ca5903138 Make derive lint handle generics correctly 2016-02-15 10:20:26 +05:30
Joshua Holmer
7eea67605a Lint single-character strings as P: Pattern args
Fixes #650
2016-02-14 22:40:43 -05:00
mcarton
1b93d71645 Fix ICE in EXPL_IMPL_CLONE_ON_COPY 2016-02-14 20:31:23 +01:00
llogiq
30a8dfb31a remove Visitor from regex_macro 2016-02-14 16:55:02 +01:00
llogiq
6a624fe77c Merge pull request #662 from mcarton/#601
Fix #601
2016-02-14 12:58:36 +01:00
mcarton
cbe2de7fd2 Address small nit 2016-02-14 12:07:56 +01:00
llogiq
5521a75707 Merge pull request #654 from mcarton/new
Lints about `new` methods
2016-02-13 22:19:36 +01:00
mcarton
4562040d6b Fix false positive in NEEDLESS_RANGE_LOOP 2016-02-13 22:09:17 +01:00
mcarton
d589a2d516 Fix comment 2016-02-13 22:08:15 +01:00
mcarton
49e2501c63 Fix false positive for ifs_same_cond and cfg! 2016-02-13 15:36:57 +01:00
mcarton
1efc88f10a Rustup to 1.8.0-nightly (ce4b75f25 2016-02-12) 2016-02-13 13:17:48 +01:00
mcarton
e8c2aa2997 Lint about new methods not returning Self 2016-02-13 13:03:28 +01:00
mcarton
edc0d19a3f Add new to WRONG_SELF_CONVENTION 2016-02-13 01:42:46 +01:00
mcarton
7f567ce1d1 Fix false negative with OK_EXPECT 2016-02-13 01:38:55 +01:00
mcarton
90f1f0d71c Merge branch 'master' into copies2 2016-02-12 18:56:27 +01:00
Oliver 'ker' Schneider
3f34b65747 fix nightly breakage 2016-02-12 18:35:44 +01:00
mcarton
07228a1041 Fix Hash implementation for Constant 2016-02-12 15:51:55 +01:00
mcarton
68ecd06f4c Small optimisation of most common cases 2016-02-12 14:30:52 +01:00
mcarton
f309dc3c0f Add the MATCH_SAME_ARMS lint 2016-02-12 14:30:52 +01:00
mcarton
cbbc667b1b Dogfood for future MATCH_SAME_ARMS lint 2016-02-12 14:30:26 +01:00
mcarton
5ddc615a40 Add missing types to eq_ty 2016-02-12 14:30:26 +01:00
mcarton
ee830ba55e Extend IF_SAME_THEN_ELSE to ifs sequences 2016-02-12 14:30:26 +01:00
mcarton
88beb35194 Implement Expr spanless-hashing 2016-02-12 14:30:26 +01:00
mcarton
afee209d5a Add missing ExprLoop to SpanlessEq 2016-02-12 14:30:26 +01:00
mcarton
91c16fc8e6 Refactor Expr comparisons 2016-02-12 14:30:26 +01:00
mcarton
e1c7914c2e Add missing ExprIndex to is_exp_equal 2016-02-12 14:30:26 +01:00
llogiq
9ee462625b Merge pull request #637 from mcarton/debug
Lint usage of `Debug`-based formatting
2016-02-12 12:18:15 +01:00
Oliver Schneider
eed9ec15fb improve the no_effect lint 2016-02-11 13:50:41 +01:00
Manish Goregaokar
1013026f18 Merge branch 'pr-645' 2016-02-10 10:20:23 +05:30
Joshua Holmer
7e06737d6f Improve testing and suggestion messages on bool_comparison 2016-02-09 15:44:07 -05:00
mcarton
2db6965c81 Lint usage of Debug-based formatting 2016-02-09 21:22:54 +01:00
mcarton
1a8b8cd28f Don’t use {:?} and use span_suggestion in TOPLEVEL_REF_ARG 2016-02-09 21:22:30 +01:00
mcarton
d27aa960b6 Remove unused Display implementation for consts 2016-02-09 21:22:30 +01:00
mcarton
34812e82d0 Use const_eval in loops 2016-02-09 21:22:30 +01:00
Joshua Holmer
2687a3f6b5 Update lints 2016-02-09 14:52:20 -05:00
Joshua Holmer
14292674b0 display suggestion separately from lint 2016-02-09 14:44:42 -05:00
Manish Goregaokar
93461afffc Merge branch 'pr-613'
Conflicts:
	src/lib.rs
	src/types.rs
2016-02-10 01:03:26 +05:30
Joshua Holmer
56b3e7b4c2 lint comparison to bool (e.g. y == true)
Addresses #630
2016-02-09 14:10:22 -05:00
llogiq
275795fab3 speed up lint using blocks and types 2016-02-09 06:18:08 +01:00
llogiq
3b0b9e0e06 Merge remote-tracking branch 'origin/master' into regex_macro 2016-02-08 23:51:30 +01:00
llogiq
6525471214 fix #595 2016-02-08 23:48:04 +01:00
Oliver Schneider
672beb4138 prevent panic in enum glob import lint if a crate's elements are glob imported
fixes #639
2016-02-08 11:28:18 +01:00
llogiq
ceb9a8bdd7 regex macro lint 2016-02-07 22:50:54 +01:00
mcarton
a9e1b1fba0 Small cleanup 2016-02-07 14:40:45 +01:00
mcarton
344698377f Fix typo 2016-02-07 13:27:09 +01:00
mcarton
cd7a913200 Add - and / to EQ_OP 2016-02-07 13:26:34 +01:00
mcarton
8e22d08129 Improve is_exp_equal 2016-02-07 13:26:34 +01:00
mcarton
d862495d19 Lint ifs with the same then and else blocks 2016-02-07 13:26:34 +01:00
mcarton
fe6f2a22ba Lint about consecutive ifs with same condition 2016-02-07 13:26:34 +01:00
Manish Goregaokar
9ba5d45509 Merge branch 'pr-581'
Conflicts:
	README.md
2016-02-07 17:40:48 +05:30
mcarton
d9a2a7ac3c Fix false negative in TRIVIAL_REGEX 2016-02-06 18:13:19 +01:00
Manish Goregaokar
f53a830c8c Merge pull request #623 from mcarton/redundant
Be more consistent in lint declarations
2016-02-06 12:14:03 +05:30
mcarton
83a82a1d86 Remove redundancy in lint documentation
The default level is always given in the declare_lint! macro, no need to
add it inconsistently in the documentation.
2016-02-06 00:41:54 +01:00
mcarton
13f245f6c9 Fix util/update_wiki.py warnings and be consistent in declare_lint! invocations 2016-02-06 00:13:29 +01:00
mcarton
a02b8124de Lint about trivial regexes 2016-02-05 23:10:48 +01:00
mcarton
70124cf591 Fix case conventions 2016-02-05 21:54:29 +01:00
mcarton
c0063e172d Improve error message 2016-02-05 19:46:11 +01:00
mcarton
0f50b0981d Check for pattern use in FOR_KV_MAP 2016-02-05 19:14:02 +01:00
mcarton
431c446746 Lint looping on maps ignoring the keys or values 2016-02-05 19:13:14 +01:00
llogiq
2adc906a75 Merge branch 'master' into regex_syntax 2016-02-05 17:34:09 +01:00
llogiq
a14514f7c8 fixed span position and README 2016-02-05 17:29:41 +01:00
Manish Goregaokar
4eb9a921d4 Lint on cloning double pointer
fixes #620
2016-02-05 16:04:15 +05:30
llogiq
3d85cc24e7 new regex syntax lint, fixes #597 2016-02-05 00:36:06 +01:00
Oliver Schneider
af07ccc16c fallout 2016-02-03 15:39:22 +01:00
Oliver Schneider
3b8375d90b warn on useing all variants of an enum 2016-02-03 15:38:23 +01:00
mcarton
fab10c07e8 Fix confusing message for STRING_TO_STRING 2016-02-03 13:52:19 +01:00
scurest
908fb143ef Extend ABSURD_UNSIGNED_COMPARISONS to handle more types 2016-02-03 05:08:00 -06:00
Manish Goregaokar
5eb884b7b0 Merge branch 'pr-593'
Conflicts:
	README.md
	src/lib.rs
2016-02-03 03:26:51 +05:30
mcarton
db205c82a4 Add a lint about using clone on Copy types 2016-02-02 22:35:01 +01:00
mcarton
47e26ab287 Fix warnings about the rustfmt_skip attribute 2016-02-02 22:34:20 +01:00
mcarton
c0d2fdc723 Partially apply rustfmt 2016-02-02 22:34:20 +01:00
mcarton
0c726e8077 Restore some of rustfmt madness 2016-02-02 22:34:20 +01:00
inrustwetrust
d93eca29fc Fix typo in drop_ref lint description. 2016-02-02 20:47:38 +01:00
inrustwetrust
bd86922c4f Add lint to warn for calls to std::mem::drop with a reference argument 2016-02-02 20:24:41 +01:00
llogiq
3a31576d76 fixed #606 2016-02-01 20:37:07 +01:00
llogiq
1dd19fbae3 Merge pull request #609 from oli-obk/prefixed_enum_variants
lint against enums where all variants share a prefix/postfix
2016-02-01 20:36:18 +01:00
Oliver Schneider
3b1df8d381 fallout 2016-02-01 13:01:16 +01:00
Oliver Schneider
328d2c7626 add lint to check for enums where all variants have the same pre-/postfix 2016-02-01 13:01:16 +01:00
Seo Sanghyeon
35ec57c116 Skip escape analysis for closure arguments 2016-02-01 20:35:01 +09:00
Oliver Schneider
07ace32ac9 fallout 2016-02-01 11:29:04 +01:00
Oliver 'ker' Schneider
d6c0435c81 lint on single match expressions with a value in the else path 2016-02-01 11:29:03 +01:00
llogiq
a2ad0c6695 fixed #528 2016-01-31 23:25:10 +01:00
scurest
e48fbba864 Add a lint to suggest uint == 0 over uint <= 0 2016-01-29 21:21:12 -06:00
llogiq
5402ef3d27 Merge branch 'devonhollowood-for-loop-over-option'
Conflicts:
	README.md
2016-01-30 01:34:35 +01:00
Devon Hollowood
405d7c691e Add for_loop_over_result lint 2016-01-29 15:24:17 -08:00
mcarton
f7bab322f6 Fix formatting on wiki 2016-01-29 22:49:48 +01:00
mcarton
95599c6a62 Synchronise comments with wiki
Wiki commits bfa439b and 9b8ced8.
2016-01-29 22:42:19 +01:00
mcarton
3a39bbaf74 Small cleanup 2016-01-29 22:31:17 +01:00
mcarton
1b9fbd8801 Fix false positive in NEEDLESS_LIFETIMES 2016-01-29 22:31:12 +01:00
mcarton
afb7e67217 Add a lint to warn about &vec![_] if &[_] would do 2016-01-29 17:41:52 +01:00
Devon Hollowood
f5cc94c96a Add for_loop_over_option lint 2016-01-28 23:39:00 -08:00
Manish Goregaokar
4c14d98c9f Merge pull request #549 from mcarton/ifs
Remove and lint about useless braces in `else { if .. }`
2016-01-29 03:39:27 +05:30
mcarton
da93643357 Add a lint to warn about use of print{,ln}! 2016-01-28 19:34:52 +01:00
llogiq
291b73b8e8 Merge master and re-run update_lints.py 2016-01-27 22:23:21 +01:00
Florian Hartwig
cee96fab39 Point out that char is 32 bit value 2016-01-27 21:10:35 +01:00
Florian Hartwig
23dfb2fbc0 Make update_lints script accept digits in lint names 2016-01-27 20:59:19 +01:00
Florian Hartwig
04f9d35f64 Add a lint for casts from char literals to u8 2016-01-27 20:23:59 +01:00
llogiq
5d5e50d67e fixed suggestion for iter case 2016-01-27 14:51:30 +01:00
llogiq
d152e5c683 fixed argument check 2016-01-26 23:51:06 +01:00
llogiq
2d97f916eb added more test, now works with vecs and iter 2016-01-25 19:46:56 +01:00
llogiq
ed96583677 extend_from_slice lint 2016-01-25 14:02:47 +01:00
mcarton
8ef0b86fab Lint explicit Clone implementations on Copy type 2016-01-24 15:33:23 +01:00
Oliver 'ker' Schneider
2a51f8d2be lint on items following statements 2016-01-24 10:16:56 +01:00
Manish Goregaokar
61bfaeb644 Merge branch 'rustup' 2016-01-22 18:36:23 +05:30
Manish Goregaokar
c86a5ccd2e Upgrade Rust to rustc 1.8.0-nightly (18b851bc5 2016-01-22)
fixes #573
2016-01-22 18:35:48 +05:30
mcarton
c6c0edb19b Add a lint about deriving Hash and implementing PartialEq 2016-01-21 19:56:31 +01:00
mcarton
7a26cfc991 Add macro checks in src/methods.rs lints 2016-01-20 18:32:17 +01:00
mcarton
91ff1db5bc Add a lint for starts_with 2016-01-20 12:57:14 +01:00
mcarton
5ac6659814 Handle Entry types in OR_FUN_CALL lint 2016-01-20 11:42:25 +01:00
Florian Hartwig
ea26ae3888 Add macro check 2016-01-19 20:08:56 +01:00
Florian Hartwig
01eda52cb5 Add lint for "string literal".as_bytes() 2016-01-19 19:17:50 +01:00
Florian Hartwig
6a4d77aa32 Fix deprecation warning on latest nightly 2016-01-19 13:53:49 +01:00
llogiq
5623e9e601 Merge pull request #559 from mcarton/redundant_closure
Fix redundant_closure false positive
2016-01-18 19:33:42 +01:00
mcarton
9d5e9cfd97 Fix redundant_closure false positive 2016-01-18 19:28:06 +01:00
mcarton
3713fd3dce Check types in the CMP_OWNED lint 2016-01-18 15:35:50 +01:00
Manish Goregaokar
5ab5a8801e Merge pull request #556 from mcarton/or_fun_call
New lint, new utility functions and nightly fix
2016-01-18 18:57:35 +05:30
mcarton
21ba315102 Update to rustc 1.7.0-nightly (d0bac3f14 2016-01-18) 2016-01-18 13:27:42 +01:00
mcarton
b5f65ec699 Improve OR_FUN_CALL to suggest unwrap_or_default 2016-01-18 13:11:07 +01:00
mcarton
fb6b3bed0f Add utility functions to check for trait impl 2016-01-18 13:10:26 +01:00
mcarton
90cbc858e9 Fix spelling mistake 2016-01-18 13:09:46 +01:00
Florian Hartwig
7e85db645e Fix another false positive in lifetime elision lint
The false positive occurred when we have an anonymous input lifetime and a
named output lifetime. This is not elidable, because if we elided the output
lifetime, it would be inferred to be the same as the input.
2016-01-17 17:53:41 +01:00
mcarton
c6604bb281 Add a lint to warn about call to .*or(foo(..)) 2016-01-16 18:47:45 +01:00
llogiq
840d87022e Merge pull request #523 from sanxiyn/escape-arg
Extend escape analysis to arguments
2016-01-16 00:03:58 +01:00
llogiq
da8a788b77 Merge pull request #551 from fhartwig/unused-lifetimes-fix
Consider lifetime in self parameter in unused_lifetime lint
2016-01-16 00:02:08 +01:00
mcarton
387e0991e3 Handle more iterator adapter cases in for loops 2016-01-14 20:58:32 +01:00
Florian Hartwig
7499f3c7a9 Consider lifetime in self paramter in unused_lifetime lint 2016-01-14 19:27:24 +01:00
mcarton
c2444c6043 Lint about else { if .. } with useless braces 2016-01-13 18:32:55 +01:00
mcarton
375b8168e4 Remove useless curly braces in else { if .. } 2016-01-13 18:32:05 +01:00
mcarton
6fa9bf64d7 Use span_suggestion in ENTRY lint 2016-01-13 17:27:49 +01:00
mcarton
f63329761f Cleanup utils, mostly doc 2016-01-13 17:27:49 +01:00
mcarton
09129c1b41 Add BTreeMap to the HASHMAP_ENTRY rule
Fixes #433
2016-01-13 17:27:36 +01:00
mcarton
44daa8bd72 Use span_suggestion in matches lints
Ref #442
2016-01-13 13:17:11 +01:00
mcarton
9f641a1009 Add known enums to SINGLE_MATCH 2016-01-13 01:19:27 +01:00
llogiq
37707b5a34 added semver lint 2016-01-09 02:05:43 +01:00
Manish Goregaokar
a21108a296 Stronger macro check 2016-01-08 21:21:12 +05:30
Manish Goregaokar
f27cfdb51a Fix warnings for unused attributes 2016-01-07 12:06:16 +05:30
Manish Goregaokar
002c8c34f8 re-add missing comments 2016-01-04 20:01:08 +05:30
Manish Goregaokar
c1a99fdd90 Fix dogfood failures by refactoring open_options 2016-01-04 12:06:37 +05:30
Manish Goregaokar
c9342d0121 fmt clippy 2016-01-04 09:56:12 +05:30
mcarton
9945bd82a8 Add better error messages for HashMapLint 2016-01-03 17:19:49 +01:00
mcarton
d0bb71e6a2 Finish the HashMapLint 2016-01-03 17:04:08 +01:00
mcarton
54b70ed8e1 Move eq_op::is_exp_equal to utils 2016-01-03 17:04:08 +01:00
mcarton
0c6e385493 Implement a HashMapLint 2016-01-03 17:04:08 +01:00
Manish Goregaokar
4484448cd1 Merge branch 'pr-538'
Conflicts:
	README.md
2016-01-03 21:26:04 +05:30
Manish Goregaokar
780dedc500 fixups 2016-01-03 21:25:09 +05:30
mcarton
7a4d6aa8b7 Use same error message for OPTION_UNWRAP_USED and RESULT_UNWRAP_USED
IIRC, Result::expect wasn't stable until quite recently, which might be
why there was 2 different error messages.
2016-01-03 14:49:54 +01:00
Guillaume Gomez
abfb1d3ca1 Add new lint on function naming check (the '_') 2016-01-03 14:48:54 +01:00
mcarton
52fbf1989d Add missing WRONG_PUB_SELF_CONVENTION in lint_array! and corresponding test 2016-01-03 14:42:24 +01:00
llogiq
a02f34aba9 Merge pull request #520 from mcarton/#471
Implement #471
2016-01-02 21:07:56 +01:00
llogiq
3e20292877 Merge pull request #535 from GuillaumeGomez/improve_field_help
Add help on field binding
2016-01-02 21:05:22 +01:00
mcarton
542685dad1 Merge branch 'master' of https://github.com/Manishearth/rust-clippy into #471 2016-01-02 19:36:45 +01:00
Manish Goregaokar
d8d3ee907b Add macro check for box vec (fixes #529) 2016-01-02 21:49:53 +05:30
Manish Goregaokar
a745efd566 Add smarter macro check for block_in_if (fixes #528) 2016-01-02 21:41:53 +05:30
Manish Goregaokar
32cf6e32f6 Improve documentation on match_ref_pats (fixes #532) 2016-01-02 16:36:17 +05:30
Manish Goregaokar
1605ef6ed4 Rustup to syntax::errors changes 2016-01-02 16:10:15 +05:30
Guillaume Gomez
bd8a265000 Add help on field binding 2016-01-02 06:31:05 +01:00
Johannes Linke
f89e400578 Minor documentation cleanups 2016-01-01 17:49:01 +01:00
Johannes Linke
b287739c0b Remove reference to a fixed issue 2016-01-01 17:48:46 +01:00
Johannes Linke
06f30a61dd Add "warn/allow by default" to lint descriptions where it was missing. 2016-01-01 17:48:19 +01:00
Devon Hollowood
093582c102 Make MethodsPass lint notes clearer 2015-12-30 01:07:40 -08:00
Devon Hollowood
2c42d46468 Bug fix 2015-12-30 00:55:38 -08:00
Devon Hollowood
a6bd2d0622 Add SEARCH_IS_SOME lint 2015-12-30 00:38:03 -08:00
Devon Hollowood
bbd439ec9e Add FILTER_NEXT lint 2015-12-28 16:56:58 -08:00
Seo Sanghyeon
07830c44af Extend escape analysis to arguments 2015-12-28 23:12:57 +09:00
Devon Hollowood
29b53d600f Replace match_method_chain() with method_chain_args() 2015-12-27 14:15:09 -08:00
Devon Hollowood
f1aac931bd Refactor check_expr() impl for MethodsPass 2015-12-27 01:22:53 -08:00
Manish Goregaokar
dbf1cdf34a Fix panic lint 2015-12-24 15:27:31 +05:30
mcarton
592ca26e90 Fix #518 2015-12-23 22:37:52 +01:00
mcarton
4958878ad2 Fix missing parameter in panic! 2015-12-23 22:36:37 +01:00
mcarton
0fa8481ba3 Put tests in tests folder 2015-12-23 17:48:41 +01:00
mcarton
2fd3093395 Only run MATCH_OVERLAPPING_ARM on integral matches 2015-12-23 11:25:44 +01:00
mcarton
90efb7b76d Fix typo 2015-12-23 11:25:32 +01:00
mcarton
1aa3956b8a Update README 2015-12-23 02:45:17 +01:00
mcarton
0c8de9ed52 Split MatchPass::check_expr for dogfood 2015-12-23 02:42:01 +01:00
mcarton
3373ea43c0 Consider literal patterns in MATCH_OVERLAPPING_ARM 2015-12-23 02:42:01 +01:00
mcarton
7216e83189 Implement #471 2015-12-23 02:42:01 +01:00
Florian Hartwig
e4fbeb4947 Don't trigger block_in_if_condition_expr lint if the block is unsafe 2015-12-23 02:12:08 +01:00
Manish Goregaokar
dd16ac2ad7 Merge pull request #509 from mcarton/array-indexing
Implement #364
2015-12-22 10:22:06 +05:30
Manish Goregaokar
ea03c0d9e3 Merge pull request #514 from mcarton/remove-dup
Remove dup
2015-12-22 10:18:12 +05:30
mcarton
0e4259a827 Remove duplicated if_let_chain! macro definition 2015-12-22 00:48:50 +01:00
Markus Unterwaditzer
acc47a3bd5 Nightly fixes
As of
e3da2a9003 (diff-12e06f1e9ca371a11bdc4615f50a4071L59)
HirVec is syntax::ptr::P instead of Vec.
2015-12-22 00:22:35 +01:00
mcarton
826827fe94 Fix some typos 2015-12-21 20:47:19 +01:00
mcarton
3abdcd4709 Implement #364 2015-12-21 19:36:58 +01:00
Devon Hollowood
b190aa7deb Implement #507
Make `used_underscore_binding` lint compatible with MacroAttributes
expansions. TODO: Add a good test for this.
2015-12-21 01:03:12 -08:00
Manish Goregaokar
4a32445aa7 Add macro check to used_underscore 2015-12-20 04:53:29 +05:30
Manish Goregaokar
a65a7770b3 Rust upgrade to rustc 1.7.0-nightly (8ad12c3e2 2015-12-19) 2015-12-19 19:08:22 +05:30
Manish Goregaokar
9dca15de3e Merge pull request #499 from devonhollowood/underscore_binding
Add used_underscore_binding lint
2015-12-19 19:02:06 +05:30
Devon Hollowood
98d21f9fc5 Make compatible with unused_variables lint 2015-12-18 16:04:33 -08:00
Devon Hollowood
02cb24de82 Remove local variable check 2015-12-18 13:45:03 -08:00
Manish Goregaokar
b900e88910 Merge pull request #494 from sanxiyn/suggestion-2
Use suggestion for needless_return
2015-12-17 22:17:32 +05:30
Devon Hollowood
e620a1d57c Make suggested changes 2015-12-16 17:28:26 -08:00
llogiq
c645a9febe adding missing doc comments 2015-12-14 22:16:56 +01:00
llogiq
827082ac41 fix boxed_local example 2015-12-14 21:17:11 +01:00
Manish Goregaokar
8105260d6e Merge pull request #501 from oli-obk/fix/seme
fix cyclomatic complexity lint (fixes #491, fixes #478)
2015-12-14 22:23:42 +05:30
Oliver Schneider
cc1d696cb9 fix fallout from CC improvements 2015-12-14 14:30:09 +01:00
Oliver Schneider
902c7d832b fix cc computation in the presence of diverging calls
CFG treats diverging calls as its completely own path out of the function.
While this makes sense, it should also mean that a panic should increase the cyclomatic
complexity. Instead it decreases it.

Minimal example:

```rust
if a {
    b
} else {
    panic!("cake");
}
d
```

creates the following graph

```dot
digraph G {
  "if a" -> "b"
  "if a" -> "panic!(\"cake\")"
  "b" -> c
}
```

which has a CC of 1 (3 - 4 + 2). A CC of 1 means there is one path through the program.
Obviously that is wrong. There are two paths. One returning normally, and one panicking.
2015-12-14 14:29:20 +01:00
llogiq
c0bccc9567 more doc comments 2015-12-14 13:32:07 +01:00
llogiq
d7292fe235 more docs 2015-12-14 08:03:01 +01:00
Manish Goregaokar
f2b977907c Merge branch 'more_wiki' 2015-12-13 21:58:18 +05:30
Devon Hollowood
6960bf2ebc Make ExprField follow single-underscore rules 2015-12-12 21:59:25 -08:00
Devon Hollowood
b24e3aeea0 Add wiki docs, in line with #492 2015-12-12 21:56:05 -08:00
Devon Hollowood
aeb5a0e60c Reduce false positives
Add macro checking, and only lint for single leading underscores
2015-12-12 21:39:10 -08:00
Devon Hollowood
6091112698 Update tests 2015-12-12 21:39:10 -08:00
Devon Hollowood
43b96d59ad Run update_lints.py 2015-12-12 21:39:10 -08:00
Devon Hollowood
9de308ee15 Add used_underscore_binding lint 2015-12-12 21:39:10 -08:00
Manish Goregaokar
4ae43b10f0 Add wiki note for escape analysis 2015-12-13 09:08:58 +05:30
Cesar Eduardo Barros
8e59be318c Mention VecDeque in linkedlist lint
I couldn't find anything named RingBuf in the standard library. Some
search revealed that it had been renamed to VecDeque before the first
stable Rust release.
2015-12-12 20:05:06 -02:00
Manish Goregaokar
6aa656a910 Merge pull request #492 from Manishearth/wiki
added wiki comments + wiki-generating python script
2015-12-11 09:20:19 -05:00
Seo Sanghyeon
974ab43453 Use suggestion for needless_return 2015-12-11 16:28:05 +09:00
llogiq
5bbc1427fd added wiki comments + wiki-generating python script 2015-12-11 01:22:27 +01:00
Manish Goregaokar
b9546599e3 Check for unused lifetimes in bounds (fixes #489) 2015-12-10 12:02:59 -05:00
Manish Goregaokar
b865e30b49 Upgrade rust to rustc 1.6.0-nightly (462ec0576 2015-12-09) 2015-12-09 15:56:49 -05:00
Seo Sanghyeon
213c15cd66 Add span_lint_and_then and use it 2015-12-09 02:46:14 +09:00
Seo Sanghyeon
35b5c3efdd Use suggestion for redundant_closure 2015-12-08 15:03:01 +09:00
llogiq
3260b501a2 Merge pull request #483 from Manishearth/bored
Add lint for unused lifetimes (fixes #459)
2015-12-07 21:47:10 +01:00
Manish Goregaokar
e8686a3ecd Merge branch 'pr-482' 2015-12-07 07:23:52 -05:00
Guillaume Gomez
72117836f1 Add check on redundant _ bindings in structs 2015-12-07 13:16:59 +01:00
Manish Goregaokar
c7b87a06d2 Add lint for unused lifetimes (fixes #459) 2015-12-07 06:55:14 -05:00
Manish Goregaokar
c4e9982dd7 Merge pull request #481 from fhartwig/lifetime-with-alias
Make unneeded_lifetimes lint work properly with type aliases
2015-12-06 09:08:40 +05:30
Florian Hartwig
ac39dc290b Remove obsolete workaround 2015-12-06 02:05:32 +01:00
Florian Hartwig
62db392730 Make lifetimes lint work with type aliases and non-locally-defined structs 2015-12-06 02:04:13 +01:00
Robert Clipsham
978c41584f Fix clippy with latest Rust nightly. 2015-12-05 12:33:58 +00:00
Manish Goregaokar
dc414e6c02 Make panic in CC silencable (partial #478) 2015-12-05 14:23:00 +05:30
Manish Goregaokar
18e81c1b59 Rudimentary escape analysis for Box<T> 2015-12-04 20:23:14 +05:30
llogiq
e90acaf596 Merge pull request #460 from oli-obk/cyclomatic_complexity
Cyclomatic complexity
2015-12-03 16:52:53 +01:00
Oliver Schneider
04524c549e improve cc of function 2015-12-03 16:41:55 +01:00
Oliver Schneider
3d1b7e1957 high-speed-dogfood 2015-12-03 16:41:55 +01:00
Oliver Schneider
617c820e6b compute cyclomatic complexity (adjusted to not punish Rust's match) 2015-12-03 16:41:55 +01:00
Seo Sanghyeon
26f539eaa3 Remove unused qualifications 2015-12-02 23:25:12 +09:00
Manish Goregaokar
ba59ed05e3 Rust upgrade to rustc 1.6.0-nightly (52d95e644 2015-11-30) 2015-11-30 23:16:28 +05:30
Hobofan
7d583dab80 fix for latest nightly
Fixes breakage introduced by rust-lang/rust#30043
2015-11-27 14:50:23 +01:00
Manish Goregaokar
409c0f0998 Merge pull request #468 from devonhollowood/option-methods
Lint `map(f).unwrap_or(a)` and `map(f).unwrap_or_else(g)`
2015-11-26 14:22:27 +05:30
Devon Hollowood
443e4556c2 Add lints suggesting map_or() and map_or_else()
In accordance with the latter lint, replace map().unwrap_or_else() in
src/mut_mut.rs with map_or_else()
2015-11-25 23:56:45 -08:00
Florian Hartwig
94dc2f567a Suppress explicit_counter_loop lint if loop variable is used after the loop 2015-11-26 00:09:01 +01:00
Florian Hartwig
cf54006449 Fixes to build with current rust nightly 2015-11-25 16:28:29 +01:00
Seo Sanghyeon
b1a0abe404 Don't panic 2015-11-25 13:57:50 +09:00
Seo Sanghyeon
746991572f Extend match_ref_pats to desugared matches 2015-11-25 02:47:17 +09:00
Seo Sanghyeon
a3e8091e87 Dogfood match_ref_pats for if let 2015-11-25 02:44:40 +09:00
Manish Goregaokar
b40e80f039 spurious newline 2015-11-23 16:34:23 +05:30
Manish Goregaokar
84ad2be1df Merge branch 'pr-462'
Conflicts:
	README.md
2015-11-22 21:58:13 +05:30
John Quigley
d4cf288b38 Add block_in_if lint, #434 2015-11-22 21:52:06 +05:30
Florian Hartwig
a36707bffd Appease clippy by not shadowing variables 2015-11-19 20:19:19 +01:00
Florian Hartwig
096c064d43 Simplify has_debug_impl 2015-11-19 20:13:36 +01:00
Florian Hartwig
cad88a9137 warn on use of ok().expect() 2015-11-19 17:15:21 +01:00
Florian Hartwig
9511e6739d Update to latest rust nightly 2015-11-19 15:51:30 +01:00
Seo Sanghyeon
1d602d0f12 rustfmt a little 2015-11-17 14:22:57 +09:00
Seo Sanghyeon
b17e38782e Remove trailing commas in match arms with blocks 2015-11-17 13:39:42 +09:00
llogiq
1555eed5fb Merge pull request #452 from fhartwig/lifetime-false-positives
Fix some false positive in needless_lifetimes lint
2015-11-14 09:25:19 +01:00
Andrew Paseltiner
91763d7725 Match min and max functions using DefId
Closes #446.
2015-11-11 11:08:33 -05:00
Andrew Paseltiner
e8a239a1a2 Add lint for useless transmutes
Closes #441.
2015-11-11 10:53:11 -05:00
Florian Hartwig
e48973eb9f Track elided lifetimes in types and trait objects 2015-11-11 00:12:45 +01:00
Andre Bogus
42ae1e6918 use rustc's eval_const, bail on (negative) infinity 2015-11-10 11:23:47 +01:00
Andre Bogus
aea2eb7da7 use visitor for contains_self 2015-11-10 10:25:21 +01:00
Andrew Paseltiner
2801c1031d Remove executable permission from remaining source files 2015-11-09 08:04:41 -05:00
Manish Goregaokar
764791b83e Merge pull request #440 from Manishearth/map_clone
match .map(Clone::clone)
2015-11-08 10:13:55 +05:30
llogiq
a0cd8fc943 match .map(Clone::clone) 2015-11-05 17:11:41 +01:00
Manish Goregaokar
c7df4bd000 Rustup to rustc 1.6.0-nightly (effcd2965 2015-11-04)
fixes #437
2015-11-05 08:20:28 +05:30
Seo Sanghyeon
3322ffa8a0 New lint for assignment to temporary 2015-11-04 21:37:18 +09:00
wartman4404
764eedd050 check for Deref conversions 2015-11-03 21:11:40 -06:00
wartman4404
414c0d20f7 New lint for using .cloned() 2015-11-03 21:01:52 -06:00
Nathan Weston
d28b8e169f New lint for zip with array length instead of enumerate()
Fixes #11.
2015-11-03 15:55:20 -05:00
Manish Goregaokar
dbb8a872a3 Fix ptr-arg false positive for trait impls
Fixes #425
2015-10-31 05:18:05 +05:30
llogiq
555328cc7b Merge pull request #422 from sanxiyn/no-effect
New lint for statement with no effect
2015-10-29 12:05:28 +01:00
Seo Sanghyeon
0fe5981870 New lint for statement with no effect 2015-10-29 15:50:35 +09:00
wartman4404
8e4c2171d2 Don't show single_match if match_bool also applies 2015-10-28 22:26:48 -05:00
Florian Hartwig
c5b6fda399 Allow needless_lifetime to pass dogfood.sh 2015-10-27 18:28:36 +01:00
Florian Hartwig
5ca7ebb6d2 Fix false positives when iterator variable is used after the loop 2015-10-26 23:57:55 +01:00
Florian Hartwig
8626ac1fd4 Fixes for code review comments
* remove weird infinite loops from compile-tests
* remove call to Option::unwrap
* in the lint message, show while-let loop rewritten as for loop
2015-10-26 23:57:55 +01:00
Florian Hartwig
659e7c1d5e Don't suggest using a for loop if the iterator is used in the loop body
Due to https://github.com/rust-lang/rust/issues/8372, we have to use while-let
in these cases.
2015-10-26 23:57:55 +01:00
Florian Hartwig
f6163fce61 Suggest for loop instead of while-let when looping over iterators 2015-10-26 23:57:50 +01:00
Georg Brandl
a91c618fed Fix reverse_range_loop not taking sign into account (fixes #409)
Adds a Display impl for Constant, because that might come in handy
elsewhere as well.
2015-10-26 08:05:01 +01:00
Kevin Yap
70e3277bf9 Compare float literals to stringified constants
- Convert constants to strings and compare directly with float literal.
- Return immediately after positive match for constant.
- Fix value of `my_log10_e` in `approx_const` tests.
2015-10-24 16:00:22 -07:00
Kevin Yap
546eb14b7e Change implementation of approx_const lint
- Replace epsilon with lower and upper bounds for each constant.
- Warn on use of "3.14", and update tests accordingly.
2015-10-22 23:07:27 -07:00
Seo Sanghyeon
d843257643 New lint for struct update that has no effect 2015-10-22 18:19:06 +09:00
Andre Bogus
da82e2d3ba added code snippet help to match_bool 2015-10-21 08:24:56 +02:00
Vikas Kumar
5e78fbbf57 Fixups from review comments
1. Moved common check `in_external_macro` to the top of function from inside each
conditionals.
2. Inlined `is_bool_expr` call
2015-10-20 11:26:54 -07:00
Vikas Kumar
675c532eab Ran util/update_lints.py to auto gen doc and lib.rs 2015-10-20 10:25:37 -07:00
Vikas Kumar
2951b70d15 Match on bool should be replaced with if..else block
1. Added another conditional in `check_expr` impl to lint if match expr
is a bool.
2. Test cases.
2015-10-20 10:18:48 -07:00
Manish Goregaokar
dea087dd17 Merge branch 'pr-394' 2015-10-18 00:54:03 +05:30
Florian Gilcher
8063916477 Cleanup as discussed in PR 2015-10-17 20:16:54 +02:00