Commit Graph

589 Commits

Author SHA1 Message Date
Florian Hartwig
04f9d35f64 Add a lint for casts from char literals to u8 2016-01-27 20:23:59 +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
Manish Goregaokar
61bfaeb644 Merge branch 'rustup' 2016-01-22 18:36:23 +05:30
Manish Goregaokar
c86a5ccd2e Upgrade Rust to rustc 1.8.0-nightly (18b851bc5 2016-01-22)
fixes #573
2016-01-22 18:35:48 +05:30
mcarton
c6c0edb19b Add a lint about deriving Hash and implementing PartialEq 2016-01-21 19:56:31 +01:00
mcarton
7a26cfc991 Add macro checks in src/methods.rs lints 2016-01-20 18:32:17 +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
ea26ae3888 Add macro check 2016-01-19 20:08:56 +01:00
Florian Hartwig
01eda52cb5 Add lint for "string literal".as_bytes() 2016-01-19 19:17:50 +01:00
Florian Hartwig
6a4d77aa32 Fix deprecation warning on latest nightly 2016-01-19 13:53:49 +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
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