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
mcarton
592ca26e90
Fix #518
2015-12-23 22:37:52 +01:00
mcarton
7216e83189
Implement #471
2015-12-23 02:42:01 +01:00
mcarton
3abdcd4709
Implement #364
2015-12-21 19:36:58 +01:00
Devon Hollowood
43b96d59ad
Run update_lints.py
2015-12-12 21:39:10 -08:00
Manish Goregaokar
b865e30b49
Upgrade rust to rustc 1.6.0-nightly (462ec0576 2015-12-09)
2015-12-09 15:56:49 -05: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
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
Hobofan
7d583dab80
fix for latest nightly
...
Fixes breakage introduced by rust-lang/rust#30043
2015-11-27 14:50:23 +01:00
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
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
Andrew Paseltiner
e8a239a1a2
Add lint for useless transmutes
...
Closes #441 .
2015-11-11 10:53:11 -05:00
Andrew Paseltiner
2801c1031d
Remove executable permission from remaining source files
2015-11-09 08:04:41 -05:00
Seo Sanghyeon
3322ffa8a0
New lint for assignment to temporary
2015-11-04 21:37:18 +09: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
Seo Sanghyeon
0fe5981870
New lint for statement with no effect
2015-10-29 15:50:35 +09:00
Florian Hartwig
f6163fce61
Suggest for loop instead of while-let when looping over iterators
2015-10-26 23:57:50 +01:00
Seo Sanghyeon
d843257643
New lint for struct update that has no effect
2015-10-22 18:19:06 +09: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
Florian Gilcher
8063916477
Cleanup as discussed in PR
2015-10-17 20:16:54 +02:00
Florian Gilcher
39e93d572b
Regnerate README.md
2015-10-15 21:33:47 +02:00
Florian Gilcher
1bd023d3e0
New lint for needless use of nightly features
2015-10-15 21:33:47 +02:00
Florian Hartwig
871d9fc27c
Make ptr_arg lint warn by default
2015-10-14 20:35:44 +02:00
Andre Bogus
cf1e83b6dc
Merged #365
2015-10-14 12:22:57 +02:00
Andre Bogus
949c3545ce
Merged #366
2015-10-14 12:06:28 +02:00
Andre Bogus
bed29a017b
new lint to detect
2015-10-13 18:38:08 +05:30
swgillespie
b02e80c012
implement 0.0/0.0 -> NaN lint as described in #370
...
casing of NaN
2015-10-11 19:26:23 -07:00
Manish Goregaokar
4e2b09831b
Rust upgrade to rustc 1.5.0-nightly (9d3e79ad3 2015-10-10)
2015-10-12 02:42:59 +05:30
Florian Hartwig
26b2733b15
Add a lint for sized integer types in a mutex
2015-10-07 22:58:34 +02:00
Pyriphlegethon
7644f8e2a1
Add "nonsensical OpenOptions" lint
2015-10-07 13:46:51 +02:00
Florian Hartwig
f8aa0431bd
Suggest using an atomic value instead of a Mutex where possible
2015-10-07 01:35:14 +02:00
Pyriphlegethon
b8cdefb6cf
Add unnecessary mut passed lint
2015-09-29 13:11:19 +02:00
Manish Goregaokar
f4da7d09d2
Upgrade Rust to rustc 1.5.0-nightly (cff041170 2015-09-17)
...
LintPass was split and ExprParen was removed from the HIR
Fixes #338
2015-09-19 08:23:04 +05:30
Manish Goregaokar
3124d2b8df
Rustup to rustc 1.5.0-nightly (fc4d566b4 2015-09-16)
...
fixes #334
2015-09-17 05:32:29 +05:30
Nathan Weston
f87dd31f30
New lint: loop with explicit counter variable ( fixes #159 )
...
Avoiding false positives here turns out to be fairly complicated.
2015-09-15 09:41:25 -04:00
swgillespie
82c524b774
implement empty range lint as described in #330
2015-09-14 17:19:05 -07:00
llogiq
4835372df5
made shadow_unrelated allow, added previous binding span note, fixed #319
2015-09-08 11:50:04 +02:00
Manish Goregaokar
0e658afc1b
Fix mut_mut false positive, make Allow ( fixes #309 )
2015-09-08 02:29:13 +05:30
llogiq
92b04cd75d
split wrong_self_convention in pub/default visibility part
2015-09-07 09:17:45 +02:00
llogiq
cd91110ec0
new lint: min_max
2015-09-05 12:46:34 +02:00
llogiq
e11fd49b1c
Unicode lints, second attempt: Lint whole strings, help with replacement
2015-09-04 16:18:46 +05:30
Manish Goregaokar
eca185438b
Update rust to 0efb9dab8c7c07fa28e9df0eccc5c07ea3c17fbb (HIR+lints, Thu Sep 3 18:59:56 2015 +0530)
...
fixes #294
2015-09-03 23:12:19 +05:30
Georg Brandl
1007864198
new lint: self conventions for certain method names ( fixes #267 )
2015-09-01 18:52:48 +02:00
Georg Brandl
88dd38de87
lib: add clippy_pedantic group with all Allow by default lints ( fixes #265 )
2015-09-01 18:05:28 +02:00
Manish Goregaokar
d3da9f6c81
Merge branch 'pr-260'
...
Conflicts:
src/lib.rs
2015-08-31 15:06:53 +05:30
Georg Brandl
03abe275b2
new lint: unnecessary patterns (x@_ -> x)
2015-08-30 19:02:30 +02:00
Tim Neumann
ef0c933550
add precedence_negative_literal lint
2015-08-30 17:34:48 +02:00
Georg Brandl
16df79a054
new lint: using collect() to just exhaust an iterator
...
Should use a for loop instead.
2015-08-30 13:10:59 +02:00
Georg Brandl
b72ef5a173
new lint: loop-match-break, which could be while-let ( fixes #118 )
2015-08-30 12:40:39 +02:00
Manish Goregaokar
193e71be61
Merge branch 'pr-228'
...
Conflicts:
README.md
src/methods.rs
2015-08-27 11:09:40 +05:30
llogiq
5225feceaa
shadowing detection
2015-08-25 13:40:26 +02:00
Georg Brandl
56e8db476c
new lint: inherent methods that should be trait impls ( fixes #218 )
2015-08-25 11:10:42 +02:00
llogiq
209e6981a3
shadowing detection
2015-08-24 16:59:02 +02:00
R.Chavignat
e80f2470b7
Merge branch 'master' into cast_iusize_improvements
2015-08-23 00:08:16 +02:00
R.Chavignat
79ef13592e
Completed the implementation of *size handling.
...
Added some more cases to the test, and implemented a new lint,
cast_possible_wrap, triggered when casting from an unsigned type to a
signed type of the same size.
2015-08-22 23:49:03 +02:00
Georg Brandl
017dac2301
new lint: using &Ref patterns instead of matching on *expr ( fixes #187 )
2015-08-22 14:34:39 +02:00
Georg Brandl
5403e82681
matches: new module, move single_match lint there
2015-08-22 14:34:39 +02:00
Georg Brandl
630bb76f96
new lint: type complexity ( fixes #93 )
...
Still very naive, but it's a start.
2015-08-22 08:57:11 +02:00
R.Chavignat
ad0bc66402
Added support for isize/usize in the CastPass lint pass.
...
Extracted the match that determines an integer types's size in a
utility function and implemented support for usize/isize.
Added a needed feature to the crate root.
Added some tests to cover those cases, and a test I previously forgot.
Silenced two errors signaled by dogfood.sh in unicode.rs.
2015-08-21 03:03:37 +02:00
R.Chavignat
dbc9b7f46e
Reworked the error messages for more heplfulness.
...
Renamed the cast_possible_overflow lint to cast_possible_truncation,
and updated the error message, readme and crate root accordingly.
Added some more information to the message for the cast_precision_loss
lint.
Updated the test case to reflect changes.
2015-08-20 22:44:40 +02:00
R.Chavignat
93d9249f76
Moved allow(unknown_lints) to crate level.
2015-08-20 14:25:08 +02:00
R.Chavignat
993239d33a
Initial implementation of lossy cast lints.
...
Introduces 3 lints :
cast_possible_overflow
cast_precision_loss
cast_sign_loss
Add a compile-test test case.
Fix errors spotted by dogfood script.
2015-08-20 01:04:06 +02:00
Georg Brandl
8f4499f3ae
new lint: comparing unit types ( fixes #201 )
2015-08-19 08:11:00 +02:00
Manish Goregaokar
4f1fcd4d5b
Merge pull request #184 from Manishearth/identity_op
...
Identity op now uses const folding, no longer follows const bindings
2015-08-17 14:35:45 +05:30
Georg Brandl
e9a41e2374
new lint: lint when iterating over any Iterator::next() result ( fixes #182 )
2015-08-17 07:28:40 +02:00
llogiq
c4b07ead17
Merge pull request #179 from nweston/step-by-zero
...
New lint: Range::step_by(0) (fixes #95 )
2015-08-16 20:12:52 +02:00
Nathan Weston
23a38c4170
New lint: Range::step_by(0) ( fixes #95 )
...
Uses type information so it can detect non-literal ranges as well
(Range or RangeFrom -- the other range types don't have step_by).
2015-08-16 12:58:54 -04:00
Georg Brandl
64954283c1
add some imports to guard against crate moves
2015-08-16 09:03:06 +02:00
Georg Brandl
47b605304d
all: organize imports
...
* remove unused imports
* separate external and internal imports
* consistent import of rustc::lint
* move #[allow(unused_imports)] to local impl
2015-08-16 08:55:34 +02:00
llogiq
f23af0cfd5
changed const to consts to avoid keyword, added test, fixed a lot of bugs
2015-08-14 17:14:54 +02:00
Manish Goregaokar
83487c060f
Add trim_multiline utility ( fixes #139 )
2015-08-13 23:18:33 +05:30
Manish Goregaokar
5eab397e7c
Some fixes from dogfooding clippy
2015-08-13 21:45:41 +05:30
Georg Brandl
9578403638
new lint: looping over x.iter() or x.iter_mut() ( fixes #157 )
2015-08-13 16:31:16 +02:00
Manish Goregaokar
1d64553bc6
Merge branch 'pr-152'
...
Conflicts:
README.md
src/lib.rs
src/strings.rs
2015-08-13 18:38:08 +05:30
llogiq
9e786d3956
added string_add
to clippy
lint group
2015-08-13 11:36:39 +02:00
llogiq
f9e851e212
pulled strings passes together, added more tests
2015-08-13 11:36:39 +02:00
llogiq
0b08e9e83e
added string_add lint and fixed string_add_assign + test
2015-08-13 11:36:39 +02:00
Georg Brandl
ea0cf2a296
update script: also generate lint list in lib.rs
2015-08-13 11:34:51 +02:00
Georg Brandl
2c2716f045
all: DRY for lint descriptions
...
* use the rustc style for lint descriptions
* add a script to parse all lint descriptions
and put the generated table into README
2015-08-13 11:14:05 +02:00
Manish Goregaokar
510ea0c5e5
Merge branch 'pr-140'
...
Conflicts:
src/lib.rs
2015-08-13 12:52:14 +05:30
Georg Brandl
b349f9e88d
new lint for needless lifetimes ( fixes #115 )
2015-08-13 06:35:40 +02:00
Georg Brandl
f6090909d3
new lint: using for i in 0..x { .. vec[i] .. }
instead of iterator ( fixes #3 )
2015-08-13 06:34:08 +02:00
Georg Brandl
3044d3d633
unicode: add lint against non-ascii chars in literals (Allow by default), #85
2015-08-12 20:36:35 +02:00
Manish Goregaokar
c58f803511
Merge branch 'pr-138'
...
Conflicts:
src/lib.rs
2015-08-12 21:22:01 +05:30
Georg Brandl
4074c1f968
methods: lint against String.to_string ( fixes #100 )
2015-08-12 17:03:13 +02:00
Georg Brandl
225969e8a3
methods: move misc.StrToStringPass to MethodsPass
2015-08-12 13:58:55 +02:00
Georg Brandl
e8fed074cf
new lint: warn if let-binding has unit value ( fixes #74 )
2015-08-12 13:21:07 +02:00
Georg Brandl
6d5f9478b2
utils: implement if_let_chain macro as suggested by isHavvy
2015-08-12 07:48:47 +02:00
Georg Brandl
02c0cafa14
move NeedlessReturn pass out to its own module and rename to ReturnPass
2015-08-11 22:06:59 +02:00
Georg Brandl
2bcc151888
new lint for Option.unwrap() and Result.unwrap()
...
The latter is set to Allow by default (fixes #24 )
2015-08-11 21:19:11 +02:00
Manish Goregaokar
2cb26126d3
Merge branch 'pr-78'
...
Conflicts:
src/lib.rs
2015-08-11 23:28:06 +05:30
Georg Brandl
0ff476b529
new lint for unneeded return stmts
2015-08-11 19:05:11 +02:00
Georg Brandl
7b074d3ac7
Remove tabs and trailing whitespace from lib and misc.
2015-08-11 17:02:04 +02:00
llogiq
b393752814
New string_add_assign lint (first part of #121 ), also formatting & refactoring
2015-08-05 15:10:45 +02:00
llogiq
23caf3cccc
first unicode lint: zero_width_space
2015-06-11 11:35:00 +02:00
llogiq
e8ca19da24
fixed modules/visibility
2015-06-01 22:36:56 +02:00
llogiq
7f5891184d
merged upstream master
2015-06-01 13:55:55 +02:00
llogiq
4c76465154
Merge pull request #68 from Manishearth/macro_expn
...
macro expn detection in mut_mut.rs
2015-06-01 07:44:27 +02:00
Matthew Hall
423a9666ca
Implements #45 - any number mod 1 will be 0
2015-05-31 13:43:31 +01:00
llogiq
77838d6ba7
New lint for issue
...
#72
2015-05-30 15:10:19 +02:00
Matthew Hall
7e16822925
Add lint for ifs that could be collapsed
...
"Collapsible" ifs are ones which contain only a then block, and the then
block consists of an if that only has a then block.
2015-05-29 15:41:25 +01:00
llogiq
0d651c72ff
made macro test even simpler, added a few tests
2015-05-26 01:45:15 +02:00
llogiq
4292dc77a7
new lint: cmp_owned
2015-05-21 14:51:43 +02:00
llogiq
e8ca3c6eae
new lints len_zero and len_without_is_empty
2015-05-20 08:52:19 +02:00
llogiq
96bfade4f1
New lint: mut_mut (closes issue #9 )
2015-05-18 09:02:24 +02:00
llogiq
edf747ab76
new lint: identity_op, refactored bit_masks a bit
2015-05-15 18:46:43 +02:00
llogiq
6bec4f35df
Added 'ineffective bit mask' lint
2015-05-15 14:09:29 +02:00
Manish Goregaokar
2447e1d5be
Add eta reduction ( fixes #29 )
2015-05-10 11:49:08 +05:30
llogiq
17bcf0e865
New lint: precedence, see issue #41
2015-05-06 12:59:08 +02:00
llogiq
ac151bb1f0
Added new 'float_cmp' lint (see issue #46 )
2015-05-06 10:01:49 +02:00
llogiq
0936e0617a
new lint to check for doomed comparisons to NAN
2015-05-04 14:11:15 +02:00
llogiq
2cb84b9d15
New lint: approx_const
2015-05-04 12:01:34 +02:00
llogiq
8d2328d9a5
Added &String matching and renamed to vec_ptr_arg to ptr_arg, also added README section
2015-05-04 08:15:24 +02:00
llogiq
07adeee6e9
Added check for zero bitmask and uncommon directions, wrong comment in needless_bool corrected, added new lint vec_ptr_arg + test
2015-05-04 07:20:34 +02:00
llogiq
53fa76dff9
new lint: needless_bool (TODO: The warnings could give more specific directions)
2015-05-02 00:35:49 +02:00
llogiq
441b55b328
Added eq_op and bad_bit_mask from the extra_lints project (mostly plain copy, need to refactor to integrate better)
2015-04-30 11:48:43 +02:00
Manish Goregaokar
2935c31692
rustup (rustc 1.0.0-nightly (00978a987 2015-04-18) (built 2015-04-19))
2015-04-20 16:18:35 +05:30
Manish Goregaokar
426a3ee1e7
Rustup
2015-03-02 16:13:44 +05:30
Manish Goregaokar
67701e0062
-warnings
2015-02-19 05:03:27 +05:30
Manish Goregaokar
f428b18c47
rustup ( fixes #28 )
2015-01-10 11:56:58 +05:30
Manish Goregaokar
e57396bc52
Remove namespacing
2014-12-26 05:24:44 +05:30
Manish Goregaokar
ccf996c348
clippy lint group
2014-12-26 05:12:05 +05:30
Jonathan Castello
1431fc04af
Implement a lint to check for args like fn foo(ref x: u8)
, as the ref
is effectively ignored by rustc.
2014-12-24 15:20:30 -08:00
Manish Goregaokar
2703038f93
Add seanmonstar's StrToString lint
2014-12-16 00:46:39 +05:30
Manish Goregaokar
98d88e7eb4
rm if_let gate
2014-12-11 03:04:58 +05:30
Manish Goregaokar
ca7ad5fa80
Add DList lint ( fixes #2 )
2014-11-20 12:37:37 +05:30
Manish Goregaokar
542bfe3570
+match_if_let
2014-11-20 00:18:31 +05:30
Manish Goregaokar
92f13d8231
boxvec
2014-11-19 14:27:34 +05:30
Manish Goregaokar
37226273a7
init cargo
2014-11-19 13:23:40 +05:30