Commit Graph

518 Commits

Author SHA1 Message Date
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 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 a504ef488a Add regression test for #825 2016-04-01 21:25:20 +05:30
mcarton f8acc83449 Rustup to 1.9.0-nightly (e1195c24b 2016-03-31)
This does not require a version bump, it only affects tests.
2016-04-01 17:48:13 +02:00
mcarton f16da4fdda Fix false positive with `DOC_MARKDOWN` and links 2016-04-01 17:24:55 +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 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 be7288303a more tests 2016-03-29 10:45:45 +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 6904fd5a49 add tests showing the current level of minimization with == 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 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 0a78a795ab bugfix in quine-mc_cluskey 0.2.1 2016-03-29 10:45:18 +02:00
Oliver Schneider 050d7fd308 fallout and tests 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 cfb1bc3723 `chmod -x` test files 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 2d5e3f3118 Lint transmute from ptr to ref 2016-03-28 18:05:43 +02:00
Manish Goregaokar 3d9a7d9140 Add test for new() -> Self<'static> 2016-03-27 02:46:37 +05:30
Taylor Cramer 6adb9cb53f Added crosspointer transmute error and tests 2016-03-24 15:48:38 -07:00
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
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
mcarton ef72110684 Fix `new_without_default` with lts and generics 2016-03-18 19:12:32 +01:00
Oliver Schneider fa739e4a0b update for compiletest update 2016-03-18 14:06:39 +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 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 976d17785e Temporary fix for rustc warning false-positive? 2016-03-16 19:28:24 +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 1546cc4798 Fix ICE in `OUT_OF_BOUNDS_INDEXING` with ranges 2016-03-15 20:35:41 +01:00
Manish Goregaokar 6c7a2ffdb5 Rust upgrade to rustc 1.9.0-nightly (74b886ab1 2016-03-13), update compiletest 2016-03-15 20:36:21 +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 aa4daea364 Lint function with too many arguments 2016-03-12 14:52:06 +01:00
mcarton 403c54ec5b White-list `third-party` in conf files 2016-03-12 14:51:47 +01:00
mcarton a3031e34f9 Add a `BLACKLISTED_NAME` lint 2016-03-12 14:51:45 +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 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
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 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 6ad2f645be Put regex_macros tests in a separate feature 2016-03-07 19:39:49 +01:00
mcarton 3c3a4549a8 Fix tests with inclusive ranges 2016-03-07 16:55:12 +01:00
mcarton 7b135efa73 Remove bad test in for_loop 2016-03-07 16:42:49 +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
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 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 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
mcarton 783437eef0 Use `span_suggestion` in loops lints 2016-02-24 20:54:35 +01:00
mcarton c1b2fe31b7 Use `span_suggestion` in `len_zero` 2016-02-24 20:52:47 +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
mcarton ba3be83488 Lint about `format!("{}", foo)` 2016-02-20 21:15:05 +01:00
mcarton ef4401d4ac Lint about usage of `format!("string literal")` 2016-02-20 17:46:20 +01:00