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