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
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
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
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
mcarton
ca05e93c10
Rustup to *1.10.0-nightly (cd6a40017 2016-05-16)*
2016-05-17 23:25:20 +02:00
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
llogiq
ecca55cd9f
Merge pull request #927 from oli-obk/german_windows_32bit
...
German windows 32bit
2016-05-13 15:41:49 +02:00
Oliver Schneider
d4e11acc1f
make sure compiletest works on windows
2016-05-13 14:16:08 +02:00
Oliver Schneider
c37300d899
ignore the portability test on 32 bit
...
it will fail in rustc
2016-05-13 13:45:53 +02:00
Oliver Schneider
86e4216a56
don't check for an exact error message
...
the system might change it, especially if the system language is changed
2016-05-13 13:45:25 +02:00
Andreas Fackler
87df6ae8cb
fix typos
2016-05-13 08:50:51 +03: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
Oliver Schneider
0bef7b5f74
merge struct similar_name test into the general test file
2016-05-11 17:01:34 +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
Oliver Schneider
654154d8e7
cargo clippy
subcommand
2016-05-09 16:47:32 +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
mcarton
3ce60e9731
Don’t warn in titles in DOC_MARKDOWN
2016-05-05 21:49:57 +02:00
mcarton
cc2774df60
Test previously reported false positive
2016-05-05 21:34:42 +02:00
mcarton
e14e1a7148
Fix issue with DOC_MARKDOWN
and punctuation
2016-05-05 21:33:46 +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
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
cf5c1ab0b6
Fix paths resolution
...
Put more paths into the `utils::paths` module.
2016-04-26 13:31:52 +02:00
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
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
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
84a480b02b
Expanded tests for unsafe_removed_from_name
2016-04-19 21:52:10 -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
d6073eb54e
Fix regex tests
2016-04-14 22:07:14 +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
7ae8516bb3
Remove #[feature(deprecated)]
...
Fixes `warning: this feature is stable. attribute no longer needed`.
2016-04-13 16:07:45 +02:00
mcarton
fe6e8dac35
More tests in DOC_MARKDOWN
2016-04-13 16:02:44 +02:00
mcarton
6c0a486e8b
Fix FP with DOC_MARKDOWN
and reference links
2016-04-12 00:18:58 +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
eada860aa7
Small fixes in #802
2016-04-02 15:51:28 +02:00
Taylor Cramer
44ab23703a
Added tests for eq and neq invalid upcast comparisons
2016-04-02 15:32:57 +02:00
Taylor Cramer
cf451d3bba
Added > and >= tests for upcast comparisons
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
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
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
Oliver Schneider
add483afed
fix enum glob use (again)
2016-02-18 16:08:45 +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
Joshua Holmer
b1e4b496e1
Address @ilogiq's nits
2016-02-15 13:36:10 -05:00
mcarton
00b27bf7be
Fix suggestion in COLLAPSIBLE_IF
lint
2016-02-15 17:43:16 +01:00
mcarton
d755b1ebe2
Cleanup
2016-02-15 13:25:29 +01:00
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
6a624fe77c
Merge pull request #662 from mcarton/#601
...
Fix #601
2016-02-14 12:58:36 +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
49e2501c63
Fix false positive for ifs_same_cond
and cfg!
2016-02-13 15:36:57 +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
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
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
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
34812e82d0
Use const_eval in loops
2016-02-09 21:22:30 +01: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
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
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
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
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
8f7b8524d3
Test for double-ref lint
2016-02-05 16:04:59 +05:30
llogiq
3d85cc24e7
new regex syntax lint, fixes #597
2016-02-05 00:36:06 +01:00
Oliver Schneider
3b8375d90b
warn on use
ing 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
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
Seo Sanghyeon
35ec57c116
Skip escape analysis for closure arguments
2016-02-01 20:35:01 +09: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
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
04f9d35f64
Add a lint for casts from char literals to u8
2016-01-27 20:23:59 +01:00
llogiq
a1ac3125de
fixed and extended tests
2016-01-27 20:13:15 +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
mcarton
c6c0edb19b
Add a lint about deriving Hash and implementing PartialEq
2016-01-21 19:56:31 +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
01eda52cb5
Add lint for "string literal".as_bytes()
2016-01-19 19:17:50 +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
8642306f09
Add a test for the OR_FUN_CALL lint
2016-01-18 13:36:58 +01:00
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
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
e6b905d925
Add a test for #398
2016-01-14 21:04:56 +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
6fa9bf64d7
Use span_suggestion in ENTRY lint
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
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
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
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
mcarton
bb59717915
Remove x rights on a test file
2016-01-03 14:49:59 +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
Manish Goregaokar
e3ab0fb6e7
Merge pull request #537 from GuillaumeGomez/fields_test
...
Add test for wild fields
2016-01-03 03:55:57 +05:30
Guillaume Gomez
4b9912c2b0
Add test for wild fields
2016-01-02 23:21:59 +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
1605ef6ed4
Rustup to syntax::errors changes
2016-01-02 16:10:15 +05:30
Devon Hollowood
093582c102
Make MethodsPass lint notes clearer
2015-12-30 01:07:40 -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
mcarton
592ca26e90
Fix #518
2015-12-23 22:37:52 +01:00
mcarton
0fa8481ba3
Put tests in tests folder
2015-12-23 17:48:41 +01:00
mcarton
d01987a40b
Include error message in tests
2015-12-23 11:26:35 +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
mcarton
3abdcd4709
Implement #364
2015-12-21 19:36:58 +01:00
Devon Hollowood
b6766a0dcf
Add RustcEncodable test
2015-12-21 01:40:19 -08: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
9dca15de3e
Merge pull request #499 from devonhollowood/underscore_binding
...
Add used_underscore_binding lint
2015-12-19 19:02:06 +05:30
Devon Hollowood
bd82c082cb
Add test for struct fields
2015-12-18 16:29:22 -08:00
Devon Hollowood
98d21f9fc5
Make compatible with unused_variables
lint
2015-12-18 16:04:33 -08:00
Devon Hollowood
c8d78a70b3
Test that we do not lint for multiple underscores
2015-12-18 13:47:12 -08:00
Devon Hollowood
3533d3a223
Add more tests
2015-12-18 00:57:09 -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
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
Devon Hollowood
92fba6bd2c
Make clippy tests compatible with new lint
2015-12-12 21:39:10 -08:00
Devon Hollowood
6091112698
Update tests
2015-12-12 21:39:10 -08:00
Devon Hollowood
6482840bc5
Add tests
2015-12-12 21:39:10 -08:00
Seo Sanghyeon
974ab43453
Use suggestion for needless_return
2015-12-11 16:28:05 +09: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
35b5c3efdd
Use suggestion for redundant_closure
2015-12-08 15:03:01 +09: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
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
18e81c1b59
Rudimentary escape analysis for Box<T>
2015-12-04 20:23:14 +05:30
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
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
Seo Sanghyeon
746991572f
Extend match_ref_pats to desugared matches
2015-11-25 02:47:17 +09:00
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
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
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
6046edbc23
Add some tests for lifetime elision lint with types and traits with lifetimes
2015-11-11 00:26:22 +01:00
Andre Bogus
42ae1e6918
use rustc's eval_const, bail on (negative) infinity
2015-11-10 11:23:47 +01:00
Andrew Paseltiner
2801c1031d
Remove executable permission from remaining source files
2015-11-09 08:04:41 -05:00
Manish Goregaokar
140c34f85e
Tests shouldn't be executable ( fixes #444 )
2015-11-09 08:49:20 +05:30
llogiq
a0cd8fc943
match .map(Clone::clone)
2015-11-05 17:11:41 +01:00
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
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
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
Florian Gilcher
8063916477
Cleanup as discussed in PR
2015-10-17 20:16:54 +02:00
Florian Gilcher
1bd023d3e0
New lint for needless use of nightly features
2015-10-15 21:33:47 +02:00
Manish Goregaokar
b2f4550654
Fix type complexity lint
2015-10-15 19:55:14 +05:30