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
Andre Bogus
b3d035d252
Merge PR #374
2015-10-14 11:44:09 +02:00
Andre Bogus
bed29a017b
new lint to detect
2015-10-13 18:38:08 +05:30
Ravi Shankar
fb5fdb61fa
whup the while_let_loop for ignoring expressions!
2015-10-12 19:12:59 +05:30
Josh Stone
846602a876
Update the DefLocal pattern
...
DefLocal now contains a DefId too, since rust-lang/rust@a0dc2d9a29 .
2015-10-02 11:07:56 -07:00
Manish Goregaokar
431c391818
Fix a panic caused by while let
2015-10-02 13:37:41 +05:30
Manish Goregaokar
7eb0896271
Merge pull request #351 from Wafflespeanut/while_let
...
Training the `while_let` detector...
2015-10-01 01:14:45 +05:30
Ravi Shankar
185da55263
extending while_let to warn for more statements
2015-09-29 20:26:34 +05:30
Manish Goregaokar
15e3774cb4
rustup to 1.5.0-nightly (7bf4c885f 2015-09-26)
...
fixes #348
2015-09-28 10:34:10 +05:30
Pietro Monteiro
b2c66d1a0e
Upgrade Rust to rustc 1.5.0-nightly (b2f379cdc 2015-09-23)
...
Ident was removed in many HIR structures in favor of Name.
2015-09-23 17:30:39 -07: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
8a5b4f19fd
Check for mutable borrow of counter variable
2015-09-15 09:41:25 -04:00
Nathan Weston
6b57924e81
Improve lint message
...
Remove trailing period and include snippet of loop argument.
2015-09-15 09:41:25 -04:00
Nathan Weston
1e320b38c1
Add is_integer_literal utility function
...
Replaces is_lit_zero and is_lit_one which were used in a couple of
places.
2015-09-15 09:41:25 -04:00
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
bc7d252856
use the constant folder to generalize the lint a little bit and clean up the code. Add additional tests for things that should not be linted
2015-09-14 22:20:56 -07:00
swgillespie
82c524b774
implement empty range lint as described in #330
2015-09-14 17:19:05 -07:00
inrustwetrust
efd553c8a9
Don't show the explicit_iter_loop lint for arrays with more than 32 elements
...
The IntoIterator trait is currently not implemented for arrays with more than
32 elements, so for longer arrays, the iter() or iter_mut() methods must be
used.
2015-09-06 13:36:21 +02:00
Andre Bogus
55729b7caa
dogfooding a newly caught problem
2015-09-06 10:59:06 +02:00
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
Manish Goregaokar
73c34e12b3
Only handle ranges starting with 0 for needless_range_loop ( fixes #279 )
2015-09-02 16:11:54 +05:30
Georg Brandl
0217fb81ee
loops: fix false positives with explicit_iter_loop and references ( fixes #261 )
2015-08-31 08:29:40 +02:00
Georg Brandl
d499d2a9a7
loops: remove debugging print
2015-08-31 08:20:39 +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
Georg Brandl
ffed5b0b23
loops: use a whitelist for the "x.iter() -> &x" lint ( fixes #236 )
2015-08-25 18:28:05 +02:00
Georg Brandl
92a3394065
all: remove unneeded deref and/or ref operations
2015-08-25 14:41:35 +02:00
Georg Brandl
c8a2e848ab
utils: extract utility method for matching trait method calls from loops
2015-08-23 16:32:50 +02:00
Manish Goregaokar
65deb956f1
Merge pull request #186 from birkenfeld/fix
...
loops: fix two trailing periods in lint msgs
2015-08-17 11:05:02 +05:30
Georg Brandl
caeb72c47b
loops: fix two trailing periods in lint msgs
2015-08-17 07:30:33 +02:00
Georg Brandl
e9a41e2374
new lint: lint when iterating over any Iterator::next() result ( fixes #182 )
2015-08-17 07:28:40 +02:00
Georg Brandl
997f345046
all: remove unneeded as_str() calls for ast::Name
...
Name has PartialEq and Display impls that do what we want.
2015-08-16 08:38:47 +02:00
Manish Goregaokar
09db7f3fee
fix
2015-08-13 21:45:42 +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
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
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