Commit graph

5526 commits

Author SHA1 Message Date
flip1995
55672e7e49
Fix single_char_pattern lint for escaped chars 2018-08-03 10:19:29 +02:00
Alex Crichton
8ef759e027 Fix fallout from rust-lang/rust#52841 2018-08-02 18:08:22 -07:00
Alex Crichton
ae6ea84924 Fix tests from 40349b23ea 2018-08-02 14:22:44 -07:00
flip1995
12f2d61fa9
Replace cfg_attr(rustfmt... thingies 2018-08-02 23:04:20 +02:00
Ryan Cumming
08d6b3d2f6 Allow pass by ref when returning ADT with ref
This is a follow-up to #2951 that extends the logic to allow for
returning references inside structs/enums/unions. This was a simple
oversight in the first version and it's surprisingly easy to handle.
2018-08-02 17:57:49 +10:00
Michael Wright
534d546c81 Fix #2979 2018-08-02 08:56:53 +02:00
Philipp Hansch
d7ffaab0fb
Merge pull request #2968 from phansch/first_an_ICE_and_then_some_ice_cream
Fix ICE with 'while let Some(..) = x.iter()'
2018-08-01 06:18:34 +01:00
flip1995
74fcf7de4a
single_char_pattern: lint only on the argument span 2018-07-31 12:20:32 +02:00
Andrew Audibert
0ea1afab3a Lint using identity into_iter conversion 2018-07-29 21:37:31 -07:00
Philipp Hansch
946340acfe
Fix ICE with 'while let (..) = x.iter()' 2018-07-29 11:00:26 +02:00
Michael Wright
8eeb3feadf Merge branch 'master' into issue2894 2018-07-28 08:41:10 +02:00
Oliver Schneider
b0dabce478
Merge pull request #2963 from commandline/master
Fix regression in print_literal
2018-07-26 10:11:34 +02:00
Thomas Gideon
9b11be72c0 Fix copy-paste error 2018-07-25 18:14:11 -04:00
Thomas Gideon
5446e73de6 And the ones annotating the source file name. 2018-07-25 18:00:19 -04:00
Thomas Gideon
457b76cedf Update line numbers 2018-07-25 17:51:04 -04:00
Thomas Gideon
bf3f976a43 Fix regression in print_literal 2018-07-25 17:31:17 -04:00
Matthias Krüger
2665f10662 fix a bunch of typos found by codespell 2018-07-25 20:02:52 +02:00
Matthias Krüger
cfc9b33f17 Merge branch 'master' into typos 2018-07-25 19:54:45 +02:00
Michael Wright
5e23fcec0b Merge branch 'master' into issue2894 2018-07-25 06:27:36 +02:00
Ryan Cumming
0afa5e1e21 Merge branch 'master' into allow-pass-by-ref-on-ref-return 2018-07-24 19:03:43 +10:00
Ryan Cumming
58459abd0c Allow pass by reference if we return a reference
Currently this code will trigger `trivally_copy_pass_by_ref`:

```
struct OuterStruct {
    field: [u8; 8],
}

fn return_inner(outer: &OuterStruct) -> &[u8] {
    &outer.field
}
```

If we change the `outer` to be pass-by-value it will not live long
enough for us to return the reference. The above example is trivial but
I've hit this in real code that either returns a reference to either the
argument or in to `self`.

This suppresses the `trivally_copy_pass_by_ref` lint if we return a
reference and it has the same lifetime as the argument. This will likely
miss complex cases with multiple lifetimes bounded by each other but it
should cover the majority of cases with little effort.
2018-07-23 18:44:40 +10:00
Oliver Schneider
ff0e5f967f Rewrite the print/write macro checks as a PreExpansionPass 2018-07-23 00:19:07 +02:00
flip1995
ac77a26b8a
Skip useless_attribute lint on allow(unused_imports) on extern crate items with macro_use 2018-07-19 13:59:25 +02:00
Michael Wright
5bb52c4869 Fix use_self regressions 2018-07-17 08:20:49 +02:00
Michael Wright
847e4dcc0d Merge branch 'master' into issue2894 2018-07-17 06:32:39 +02:00
Oliver Schneider
8f61a792f4 Update test output to changes in rustc 2018-07-16 15:43:30 +02:00
csmoe
8e929946fd DeclKind 2018-07-16 11:48:33 +02:00
csmoe
8cf463fe93 StmtKind 2018-07-16 11:48:33 +02:00
csmoe
12ded030b6 TyKind 2018-07-16 11:48:33 +02:00
csmoe
5d4102ee78 BinOpKind 2018-07-16 11:46:37 +02:00
csmoe
1bd17e4fa2 ExprKind 2018-07-16 11:46:37 +02:00
Michael Wright
b90fc5edfa Fix #2894 2018-07-15 10:38:40 +02:00
Manish Goregaokar
184b99de39 Merge branch 'pr-2889' 2018-07-06 23:20:01 -07:00
gnzlbg
14cbdf2607 do not apply lint to executable crate type 2018-07-04 16:39:52 +02:00
gnzlbg
7c4ec40346 add missing_inline lint
When turned on, the lint warns on all exported functions, methods,
trait methods (default impls, impls), that are not `#[inline]`.

Closes #1503.
2018-07-04 13:50:39 +02:00
Oliver Schneider
63041d070b Rustup 2018-07-01 13:36:14 +02:00
Georg Brandl
949f0d9c72 Fix badly mangled lint message for neg-cmp-op-on-partial-ord 2018-06-29 16:55:31 +02:00
Oliver Schneider
656b26ea4f
Merge pull request #2832 from kennytm/non-copy-const
Lint against const items which are interior mutable.
2018-06-28 08:39:54 +02:00
Oliver Schneider
0de3f36a02
Merge pull request #2849 from mikerite/issue_2741
Fix #2741
2018-06-26 11:08:19 +02:00
Michael Wright
4827bdcc1c Merge branch 'master' into issue_2741 2018-06-26 07:46:56 +02:00
flip1995
b2fb01f23b
Use utils::opt_def_id() instead of def_id() to prevent ICE 2018-06-25 22:25:15 +02:00
kennytm
88b7603b16
Lint against const items which are interior mutable. Fix #1560. 2018-06-23 03:35:36 +08:00
flip1995
6224e19b80
Check for arguments before accessing the first arg 2018-06-21 15:46:24 +02:00
Oliver Schneider
25510cfb13
Merge pull request #2790 from shnewto/vectors-to-indexing-slicing-lint
Extend `indexing_slicing` lint
2018-06-21 10:30:40 +02:00
Bruno Kirschner
fedd3ef711 Allows neg_cmp_op_on_partial_ord for external macros (fixes #2856).
The macro always negates the result of the given comparison in its
internal check which automatically triggered the lint. As its an
external macro there was no chance to do anything about it which lead
to a white listing of all external macros to prevent further issues.
2018-06-20 11:58:15 +02:00
Shea Newton
c479b3bc28
Removing lint for constant usize array indexing
This commit removes the logic in this PR that linted out-of-bounds constant `usize` indexing on arrays. That case is already handled by rustc's `const_err` lint. Beyond removing the linting logic, the test file and its associated stderr were updated to verify that const `usize` indexing operations on arrays are no longer handled by this `indexing_slicing` lint.
2018-06-19 21:30:43 +00:00
Shea Newton
e63f5dfedb
Add tests that index with a const value.
In this commit tests were added to ensure that tests with a `const` index behaved as expected.
In order to minimize the changes to the test's corresponding `stderr`, the tests were appended to
the end of the file.
2018-06-19 16:28:10 +00:00
Shea Newton
4ec439bef0
Revisiting indexing_slicing test cases
This commit contains a few changes. In an attempt to clarify which test cases should and should not produce stderr it became clear that some cases were being handled incorrectly. In order to address these test cases, a minor re-factor was made to the linting logic itself.

The re-factor was driven by edge case handling including a need for additional match conditions for `ExprCall` (`&x[0..=4]`) and `ExprBinary` (`x[1 << 3]`). Rather than attempt to account for each potential `Expr*` the code was re-factored into simply "if ranged index" and an "otherwise" conditions.
2018-06-19 16:28:10 +00:00
Shea Newton
8b59542acc
Second pass at addressing changes requested
The changes reflected in this commit (requested in PR #2790) are as follows:

- Extended `INDEXING_SLICING` documentation to include the array type so that it is clearer when indexing operations are allowed.
- Variable `ty` defined identically in multiple scopes was moved to an outer scope so it's only defined once.
- Added a missing return statement to ensure only one lint is triggered by a scenario.
- Prettified match statement with a `let` clause. (I learned something new!)
- Added `&x[5..].iter().map(|x| 2 * x).collect::<Vec<i32>>()` and `&x[2..].iter().map(|x| 2 * x).collect::<Vec<i32>>()` to the test cases. The first _should trigger the lint/stderr_ and the second _should not_.
2018-06-19 16:28:10 +00:00
Shea Newton
a7c0ff3fa6
This commit represents an attempt to address changes requested in the process of reviewing PR #2790.
The changes reflected in this commit are as follows:

- Revised `IndexingSlicingPass` struct name to IndexingSlicing for consistency with the rest of the code base.
- Revised match arm condition to use `(..)` shorthand in favor of `(_, _, _)`.
- Restored a couple telling variable names.
- Calls to `cx.span_lint` were revised to use `utils::span_help_and_lint`.
- Took a stab at refactoring some generalizable calls to `utils::span_help_and_lint` to minimize duplicate code.
- Revised INDEXING_SLICING declaration to pedantic rather than restriction.
- Added `&x[0..].get(..3)` to the test cases.
2018-06-19 16:28:10 +00:00
Shea Newton
5b759efa4c
Rename instances of array_indexing
This commit renames instances of `array_indexing` to `indexing_slicing` and moves the `indexing_slicing` lint to the `clippy_pedantic` group. The justification for this commit's changes are detailed in the previous commit's message.
2018-06-19 16:27:39 +00:00
Shea Newton
7af0c67855
Extend indexing_slicing lint
Hey there clippy team! I've made some assumptions in this PR and I'm not at all certain they'll look like the right approach to you. I'm looking forward to any feedback or revision requests you have, thanks!

    Prior to this commit the `indexing_slicing` lint was limited to indexing/slicing operations on arrays. This meant that the scope of a really useful lint didn't include vectors. In order to include vectors in the `indexing_slicing` lint a few steps were taken.

    The `array_indexing.rs` source file in `clippy_lints` was renamed to `indexing_slicing.rs` to more accurately reflect the lint's new scope. The `OUT_OF_BOUNDS_INDEXING` lint persists through these changes so if we can know that a constant index or slice on an array is in bounds no lint is triggered.

    The `array_indexing` tests in the `tests/ui` directory were also extended and moved to `indexing_slicing.rs` and `indexing_slicing.stderr`.

    The `indexing_slicing` lint was moved to the `clippy_pedantic` lint group.

    A specific "Consider using" string was added to each of the `indexing_slicing` lint reports.

    At least one of the test scenarios might look peculiar and I'll leave it up to y'all to decide if it's palatable. It's the result of indexing the array `x` after `let x = [1, 2, 3, 4];`

    ```
    error: slicing may panic. Consider using `.get(..n)`or `.get_mut(..n)`instead
      --> $DIR/indexing_slicing.rs:23:6
       |
    23 |     &x[0..][..3];
       |      ^^^^^^^^^^^
    ```

    The error string reports only on the second half's range-to, because the range-from is in bounds!

    Again, thanks for taking a look.

    Closes #2536
2018-06-19 16:27:08 +00:00
uHOOCCOOHu
5b57b5fc61
Add notes for test examples. 2018-06-19 23:18:53 +08:00
uHOOCCOOHu
ce1800d599
Check lifetimes in Fn traits in generic bounds.
Add tests.
2018-06-19 21:25:38 +08:00
Oliver Schneider
d761ba78d8
Merge pull request #2837 from fanzier/panicking_unwrap
Implement lint checking for `unwrap`s that will always panic.
2018-06-19 13:30:38 +02:00
Oliver Schneider
4839c790ae
Merge pull request #2844 from illicitonion/default_trait_access
Add default_trait_access lint
2018-06-19 10:10:20 +02:00
Daniel Wagner-Hall
b24d75313e Exclude generated code 2018-06-18 10:29:25 +01:00
Michael Wright
7a32c28931 Fix #2741 2018-06-16 18:33:11 +02:00
Wim Looman
700ece5648 Allow configuring the trivial copy size limit 2018-06-15 16:53:34 +02:00
Wim Looman
7547a4ddef New Lint: Pass small trivially copyable objects by value
Fixes #1680

Hardcoded for 64-bit "trivial" size for now
2018-06-15 16:53:34 +02:00
Daniel Wagner-Hall
d3124731b7 Fix some existing test expectations 2018-06-14 23:13:12 +01:00
Daniel Wagner-Hall
4866309f9d Add default_trait_access lint 2018-06-14 09:11:46 +01:00
Oliver Schneider
26bc88d48c
Merge pull request #2839 from mikerite/duration_subsec_pr_2
Add duration_subsec lint
2018-06-12 06:30:20 -07:00
Fabian Zaiser
8682858e2c Categorize the unwrap lints correctly. 2018-06-12 15:06:46 +02:00
Fabian Zaiser
23404287fc Implement lint checking for unwraps that will always panic. 2018-06-12 15:04:44 +02:00
Michael Wright
725e9621d0 duration_subsec: Add check for subsec_micros 2018-06-12 08:25:10 +02:00
Oliver Schneider
8f0edba6e9
Merge pull request #2815 from darArch/master
Warn if non-trivial work is done inside .expect
2018-06-11 06:33:26 -07:00
Michael Wright
7b2fa2077f Add duration_subsec lint
Closes #2543
2018-06-09 10:21:26 +02:00
Oliver Schneider
91986fa933
Merge pull request #2836 from mati865/upcoming_breakage
Upcoming breakage
2018-06-09 06:56:39 +02:00
Fabian Zaiser
54826cf72e Address review comments. 2018-06-08 06:02:25 +02:00
Fabian Zaiser
81821acd59 Implement lint that checks for unidiomatic unwrap() (fixes #1770)
This checks for things like

    if x.is_some() {
        x.unwrap()
    }

which should be written using `if let` or `match` instead.

In the process I moved some logic to determine which variables are
mutated in an expression to utils/usage.rs.
2018-06-08 05:29:25 +02:00
Mateusz Mikuła
3693a4ea53 Formatting 2018-06-07 22:01:46 +02:00
Oliver Schneider
2a2e602f2a
Merge pull request #2833 from phansch/cannot_relate_bound_region_without_ICE_cream
Fix cargo late bound region mismatch ICE
2018-06-07 11:52:32 +02:00
Philipp Hansch
17aff1d774
Fix cargo late bound region mismatch ICE 2018-06-07 07:42:45 +02:00
Oliver Schneider
7563d8155b
Merge pull request #2804 from utaal/expr-call-author
Add support for ExprCall in clippy::author
2018-06-06 15:17:47 +02:00
Donald Robertson
451fd5feb9 Extracting arguments to format to pass directly to panic when appropriate 2018-06-05 21:15:08 +01:00
Oliver Schneider
1e1b4e26ea
Merge pull request #2814 from VKlayd/fn_to_int
WIP: Add lint on cast Fn to all numerical except usize.
2018-06-05 17:08:33 +02:00
Donald Robertson
1ead12c500 Adding handling and tests for custom type with implemented expect method 2018-06-04 19:43:03 +01:00
Donald Robertson
fe8c9d5965 Ensuring correct lint message is output for Option and Result type 2018-06-04 19:43:03 +01:00
Donald Robertson
05c1ccebaf Warn if non-trivial work is done inside .expect
- added tests for common usages of format and as_str arguments to expect
- added tests for usages of Option and Result types
- given performance impact of passing non literal expressions to expect, added to perf group
2018-06-04 19:43:03 +01:00
Bruno Kirschner
28f735bb26 Cleaned implements_ord helper function in boolean lint file. 2018-06-03 22:56:17 +02:00
Bruno Kirschner
80728a2201 Reduced scope of nonminimal_bool so that it doesn't evaluate only partially orded types. 2018-06-03 21:46:09 +02:00
Bruno Kirschner
09ea75bee9 Fixed spelling and indentation issues in neg_cmp_op_on_partial_ord related files. 2018-06-03 21:46:09 +02:00
Bruno Kirschner
6d51559f62 Added lint to avoid negated comparisions on partially ordered types. 2018-06-03 21:46:09 +02:00
Oliver Schneider
c6d53ad2c0
Merge pull request #2813 from terry90/master
unreadable_literal: Fills hexadecimal values with 0 to allow better grouping
2018-06-03 12:53:45 +02:00
Victor Korkin
24ab207671 Divide FN_TO_NUMERIC lint into two.
FN_TO_NUMERIC_CAST_WITH_TRUNCATION is correctness check
FN_TO_NUMERIC_CAST is only style check
2018-06-01 23:08:11 +07:00
Oliver Schneider
1ba658772a
Merge pull request #2816 from mockersf/multiple-impl
adding to restriction a lint that check for multiple inherent implementations
2018-05-31 13:33:35 +02:00
Victor Korkin
ded2576957 Add one more test 2018-05-31 09:00:13 +07:00
Wim Looman
edcb8f6976 Use compiletest::make_tests to allow it to setup the output folders 2018-05-30 21:26:09 +02:00
Wim Looman
3244d122fd Get compile-test tests for configuration working 2018-05-30 20:37:18 +02:00
Victor Korkin
e6811b9c26 Fix 'help' message 2018-05-30 16:55:03 +07:00
Victor Korkin
b69520f5fd Fixes for suggestion message, tests and lint explanation. 2018-05-30 11:48:46 +07:00
Victor Korkin
e4b2a97401 weird thing 2018-05-30 07:55:48 +07:00
François Mockers
44f4ea6dbf adding to pedantic a lint that check for multiple inherent implementations 2018-05-29 21:28:52 +02:00
Devon Hollowood
8134863c13 Fix behavior with generic lifetime parameters 2018-05-29 09:18:49 -07:00
Devon Hollowood
96b11a5888 Test that we allow non-static lifetime transmutes 2018-05-29 09:18:49 -07:00
Devon Hollowood
2a606b5220 Don't lint lifetime-only transmutes 2018-05-29 09:18:49 -07:00
Victor Korkin
f6e0388e08 Change lint type to unique and add the suggestion. 2018-05-29 22:56:38 +07:00
Mateusz Mikuła
8ed8ee895a Update to nightly 2018-05-28 2018-05-29 10:56:58 +02:00
Victor Korkin
01be53f929 Little fix for test 2018-05-28 23:49:38 +07:00
Victor Korkin
cf8f379657 Add lint on cast Fn to numerical. 2018-05-28 23:31:55 +07:00
Andrea Lattuada
5db444dfed author tests: update for_loop.stdout file 2018-05-28 14:50:41 +02:00
Andrea Lattuada
bc1de58d26 Test for ExprCall in clippy::author 2018-05-28 14:48:34 +02:00
Terry Raimondo
ed011c45c4
Update other tests 2018-05-28 14:43:44 +02:00
Terry Raimondo
b81fd202a0
Add tests
Fix tests
2018-05-28 14:23:06 +02:00
Terry Raimondo
2033a1eb0e
unreadable_literal: Fills hexadecimal values with 0 to allow grouping (c.f #2300) 2018-05-28 13:55:27 +02:00
Oliver Schneider
0d1e06d638
Merge pull request #2808 from Aaronepower/master
Added lint for unnecessary references.
2018-05-28 13:50:31 +02:00
Aaron Power
8b679176fa Added lint for unnecessary references 2018-05-28 13:07:19 +02:00
Oliver Schneider
b979f62aab
Merge pull request #2810 from Aaronepower/stable_feature_flags
Removed stable feature flags
2018-05-28 12:59:25 +02:00
Aaron Power
1931f53396 Removed stable feature flags 2018-05-28 10:03:27 +02:00
François Mockers
5379fc1b28 better parsing of condition in while loop for mutability
allow condition to be a block: by calling visit_expr of the visitor directly on the condition instead of walk_expr on the whole expression, we bypass the match to ExprWhile that calls visit_expr on the condition and visit_block on the body. This allow to re-enable visit_block in the visitor, as it won't be called on the while body
allow condition to use static variables: maintain a list of static variables used, and if they are mutable
2018-05-27 23:59:07 +02:00
Oliver Schneider
fc008aa14c Rustup 2018-05-26 10:23:34 +02:00
Michael A. Plikk
1f10dd2606 Fix note on macro outside current crate. Changed group to restricted 2018-05-24 19:38:40 +02:00
Michael A. Plikk
dc8d29be4a Allow unimplemented in other tests 2018-05-24 16:30:26 +02:00
Michael A. Plikk
88c3c2f1c2 Rename panic files to panic_unimplemented 2018-05-24 10:04:18 +02:00
Michael A. Plikk
77794e91e2 Create lint for unimplemented!() 2018-05-24 10:04:18 +02:00
Mateusz Mikuła
3c6503eb4b Format code 2018-05-22 10:21:42 +02:00
Philipp Hansch
74be5632a3
Fix chrono crash due to empty param_env 2018-05-21 17:58:34 +02:00
Oliver Schneider
e0df4ccfc5 Use the new scoped tool attributes 2018-05-19 14:04:57 +02:00
Philipp Hansch
ed885dc2b3
Fix ICE for issues 2767, 2499, 1782 2018-05-17 21:12:07 +02:00
Philipp Hansch
21e783d3b6
Add run-pass tests for SpanlessEq/SpanlessHash ICE 2018-05-17 20:47:21 +02:00
Oliver Schneider
18a5b90242
Merge pull request #2712 from rust-lang-nursery/oli-obk-patch-1
Deprecate plugin-clippy
2018-05-12 11:13:37 +02:00
Oliver Schneider
22bef4ce28
Patterns, locals and matches for author lint 2018-05-11 19:05:34 +02:00
Oliver Schneider
fd8a1d20cc
Remove all mention and testing of #[plugin(clippy)] and warn if used 2018-05-11 13:20:39 +02:00
Philipp Hansch
be3cba8852
Merge pull request #2735 from rust-lang-nursery/ice_melting
Check that we don't treat any type but a range type as a range
2018-05-09 21:56:34 +02:00
flip1995
db4e7ac725
panic_params: don't lint escaped squigglies 2018-05-09 12:29:28 +02:00
Oliver Schneider
c6e35eae53
Check that we don't treat any type but a range type as a range 2018-05-08 17:16:01 +02:00
NiekGr
e7a6b3e613 Update len_zero to handle comparisions with one
I have added test cases for comparisons with zero and one.
While implementing handling of one, incorrect handlings of zero
were also fixed.

fixes rust-lang-nursery/rust-clippy/#2554
2018-05-06 23:54:05 +02:00
Evan Simmons
d4b536f540 Fix 1x..x.0 false positive, pretty suggestion 2018-05-05 09:45:14 -07:00
Oliver Schneider
c1b39c4551
Merge pull request #2713 from alexreg/nightly-fix
Fixed build for latest rust master
2018-05-04 15:06:59 +02:00
Oliver Schneider
c7ce6c07b1 Rustup field -> method transition of ..= 2018-05-03 15:52:44 +02:00
Philipp Hansch
5d36edc90d
Prevent crash when macro is in different file
This was caused by a macro in a different file.
The `target.span` was be in the file of the macro definition and the
`item.span` in the file of the calling code.
2018-05-01 18:46:15 +02:00
Mateusz Mikuła
cc7d66aa9c rustup 2018-04-27 14:00:43 +02:00
Oliver Schneider
3b6440212d
Merge pull request #2673 from estk/excessive_precision
Excessive precision
2018-04-25 18:37:42 +02:00
Evan Simmons
9b14ad493b New excessive precision lint for floats 2018-04-24 15:18:23 -07:00
Devon Hollowood
f0e09d43c9 Make cast_ptr_alignment ignore c_void 2018-04-24 11:37:51 -07:00
Oliver Schneider
faefb4f225
Merge pull request #2684 from 17cupsofcoffee/infallible-destructuring-match
Lint for destructuring tuple structs/variants with an infallible single-armed match
2018-04-24 19:08:27 +02:00
Joe Clay
3c38a36d5a Implement lint for destructuring tuple structs with a let and a match (closes #2671) 2018-04-24 17:56:13 +01:00
Brad Gibson
1969d423a7 Corrected messaging to warn against less- to more-strictly align types, rather than the other way around. No logic changes required. 2018-04-23 10:59:53 -07:00
Michael Recachinas
a317bc9d23 Update stderrs for print and write_literal 2018-04-21 19:51:58 +01:00
Michael Recachinas
8ccaa83e90 Add more tests to print_ and write_literal
Also, move precision, width, and debug fmt tests to 'should pass'
2018-04-21 19:51:35 +01:00
Oliver Schneider
ae3213747d
Merge pull request #1467 from philipturnbull/option_map_nil_fn
Lint `Option.map(f)` where f returns unit
2018-04-15 16:14:25 +02:00
MSI\Stew's Laptop
d175c797e5
fixing error message for empty println macro 2018-04-15 14:00:28 +02:00
Philipp Hansch
4f4e20c561
Also lint Result.map for unit returns 2018-04-15 13:59:57 +02:00
Philipp Hansch
8307a899e9
Rename option_map_unit_fn to map_unit_fn 2018-04-15 13:01:10 +02:00
Philipp Hansch
d54f70f1f6
Generate let binding variable name for some cases
Given a map call like `x.field.map ...` the suggestion will contain:
`if let Some(x_field) ...`

Given a map call like `x.map ...` the suggestion will contain:
`if let Some(_x) ...`

Otherwise it will suggest: `if let Some(_) ...`
2018-04-15 13:01:10 +02:00
Philipp Hansch
d87385b406
Use approximate_suggestion for non-reducible closures 2018-04-15 13:01:10 +02:00
Philipp Hansch
7de707fdba
Remove further semicolon reduction 2018-04-15 13:01:10 +02:00
Philipp Hansch
db60c67c5b
Allow new lint in ui/eta.rs 2018-04-15 13:01:09 +02:00
Philipp Hansch
bcc335fc9c
Move test to new UI test system 2018-04-15 13:01:09 +02:00
Phil Turnbull
d0bdfe5ce3
Handle non-trivial nil closures
`reduce_nil_closure` mixed together a) 'is this a nil closure?' and b) 'can it
be reduced to a simple expression?'. Split the logic into two functions so we
can still generate a basic warning when the closure can't be simplified.
2018-04-15 13:01:09 +02:00
Phil Turnbull
30f2480fd8
Lint closures that return nil 2018-04-15 13:01:09 +02:00
Phil Turnbull
302f5d05f5
Lint Option.map(f) where f never returns 2018-04-15 13:01:09 +02:00
Phil Turnbull
e5ecbb55ee
Lint Option.map(f) where f returns nil 2018-04-15 13:01:09 +02:00
Oliver Schneider
b2e4b88d18
Merge pull request #2662 from mikerite/issue_2546
Fix useless_format false negative
2018-04-15 11:57:57 +02:00
Philipp Hansch
dfde407f0d
Move unnecessary_fold UI tests to separate file 2018-04-12 22:16:43 +02:00
Michael Wright
6ae617b313 Fix useless_format false negative
Closes #2546
2018-04-12 08:21:03 +02:00
Oliver Schneider
8ec61a613a
Merge pull request #2661 from devonhollowood/ptr-ptr-casts
Replace `misaligned_transmute` lint
2018-04-11 13:23:15 +02:00
Devon Hollowood
b77d74030b Deprecate misaligned_transmute 2018-04-11 02:50:04 -07:00
Devon Hollowood
c6bc682325 Fix misaligned_transmute lint
This is done by adding two new lints: cast_ptr_alignment and
transmute_ptr_to_ptr. These will replace misaligned_transmute.
2018-04-11 02:17:59 -07:00
Oliver Schneider
0692b2bb92
Temporarily disable the needless_borrow lint 2018-04-08 11:13:46 +02:00
Oliver Schneider
d247d9c690
Merge pull request #2645 from TimNN/regex-bytes-utf8
Allow invalid UTF-8 in bytes Regexes
2018-04-08 08:58:38 +02:00
Evan Simmons
d712991917 New lints for write! / writeln! macros. 2018-04-07 22:45:26 -07:00
Tim Neumann
fad826f966 allow invalid UTF-8 in bytes Regexes 2018-04-07 22:18:51 +02:00
Oliver Schneider
22df45f1ac
Merge pull request #2644 from phansch/fix_nonminimal_bool_false_positive
Fix nonminimal_bool false positive
2018-04-07 13:17:04 +02:00
Philipp Hansch
90e7d93d6c
Fix nonminimal_bool false positive
It was checking any is_ok, is_err, is_some, is_none method for negation
but it should only perform the check for the built-in types, not custom
types.
2018-04-07 12:52:59 +02:00
Philipp Hansch
5abe34832d
Split up match_bool UI tests 2018-04-07 10:23:27 +02:00
Oliver Schneider
044b3d90c3
Merge pull request #2633 from mikerite/ref_cow_tests
Move ref cow tests
2018-04-06 12:15:33 +02:00
Philipp Hansch
641f0685d0
Split up some single_match UI tests
This moves only the single_match tests over to the new file.
2018-04-05 22:45:36 +02:00
Michael Wright
2fd671e4bd Move ref cow tests
This commit moves the ref cow tests from needless_borrow.rs to ptr_arg.rs
where all the other PTR_ARG tests are.
2018-04-05 18:13:39 +02:00
Oliver Schneider
62d595b3dc
Merge pull request #2632 from phansch/fix_useless_format_false_positive
Fix useless_format false positive with macros
2018-04-05 09:59:12 +02:00
Philipp Hansch
ff98e3f9f5
Fix useless_format false positive with macros
Clippy was issuing a warning when `format!` was used inside a macro.
That's a problem because macros have different syntax and can be outside
the control of the user.

This skips the `useless_format` check if the `format!` call is inside a
macro.
2018-04-05 07:52:26 +02:00
memoryleak47
d9508ba99d typo 2018-04-05 04:13:14 +02:00
flip1995
cecfdeab19
Don't trigger while_immutable_condition for mutable fields of tuples/structs 2018-04-03 16:41:30 +02:00
Michael Wright
6fc9d90b60 Re-enable dogfood test on Windows
This should work now that dogfood uses a separate output directory.
2018-04-03 06:22:42 +02:00
Oliver Schneider
90fcdafb79
Merge pull request #2608 from mrecachinas/feature/print-string-literal
Check for literals as println! args
2018-04-02 23:34:17 +02:00
Michael Recachinas
fa8161ba2e Revert adding env! to tests 2018-04-02 21:34:04 +01:00
Michael Recachinas
d504290839 Add edge case with env! arg to test and known problems 2018-04-02 21:14:29 +01:00
Michael Wright
0fbcb30303 Merge branch 'master' into dogfood_target_dir 2018-04-02 07:28:10 +02:00
Michael Recachinas
ddd75fbfec Add #![allow(print_literal)] to other test/ui/print_*.rs tests 2018-04-02 00:24:40 +01:00
Michael Recachinas
62220abfa6 Add implementation and tests for literal checking in print/println format args 2018-04-01 23:19:53 +01:00
Michael Wright
1ab96db791 Make dogfood test output to seperate directory
This commit makes `cargo clippy` output the build artifacts to a
separate directory if the `CLIPPY_DOGFOOD` env var is set. This should
prevent dogfood builds from interfering with regular builds.

This should help with issue #2595.
2018-04-01 09:44:30 +02:00
Philipp Hansch
db1ec44616
Handle nested block comments 2018-03-30 12:36:50 +02:00
Philipp Hansch
b7929cafe1
Fix false positive in empty_line_after_outer_attr
Before, when you had a block comment between an attribute and the
following item like this:

```rust
\#[crate_type = "lib"]
/*

*/
pub struct Rust;
```

It would cause a false positive on the lint, because there is an empty
line inside the block comment.

This makes sure that basic block comments are detected and removed from
the snippet that was created before.
2018-03-30 12:36:50 +02:00
Oliver Schneider
c1bbc173da
Address review comments 2018-03-29 13:41:53 +02:00
Oliver Schneider
eafb9fe8df
Update test suite 2018-03-28 23:49:32 +02:00
Oliver Schneider
d6344c47e3
Categorize all the lints! 2018-03-28 15:24:26 +02:00
Oliver Schneider
b6e2c47df0
Merge pull request #2572 from flip1995/immut_while
Fix check of immutable condition in closure
2018-03-27 07:07:27 +02:00
Michael Wright
546d2fec29 Fix enum_glob_use false positives
Closes #2397.

This checks the def of the `ItemUse` path instead of checking the
capitalization of the path segements. It was noted that this def would
sometimes be `Def::Mod` instead of `Def::Enum` but it seems correct now.
2018-03-27 06:34:11 +02:00
flip1995
7d29075132
Skip the mutation in while body case for closures 2018-03-27 02:13:06 +02:00
flip1995
d458f22d89
Fix check of immutable condition in closure 2018-03-27 01:21:25 +02:00
Oliver Schneider
b01b0083ba
Merge pull request #2576 from kimsnj/infinite_loop
while_immutable_condition: fix handling of self
2018-03-27 00:06:16 +02:00
Karim Snj
737247e50e while_immutable_condition: limit suggestion span to condition 2018-03-26 23:24:57 +02:00
Karim Snj
85bcaad412 while_immutable_condition: fix handling of self 2018-03-26 23:16:54 +02:00
Philipp Hansch
034c81b761
Fix false positive in empty_line_after_outer_attribute
`empty_line_after_outer_attribute` produced a false positive warning when
deriving `Copy` and/or `Clone` for an item.

It looks like the second point in [this comment][that_comment] is related,
as the attribute that causes the false positive has a path of
`rustc_copy_clone_marker`.

Fixes #2475

[that_comment]: https://github.com/rust-lang/rust/issues/35900#issuecomment-245978831
2018-03-26 21:57:42 +02:00
Oliver Schneider
1aaeb3f16b
Update needless_lifetimes_impl_trait.rs 2018-03-26 07:05:46 +02:00
Oliver Schneider
9fb63d5fc4
Merge pull request #2574 from mark-i-m/i128
i128 is stabilizing
2018-03-26 07:04:42 +02:00
Mark Mansi
e9f6a7c72f whitespace 2018-03-25 21:26:10 -05:00
Mark Mansi
e2d7ef9972 attempt fix stderr 2018-03-25 21:17:38 -05:00
Mark Mansi
f25d4fd253 make it pass for now 2018-03-25 21:04:05 -05:00
Mark Mansi
748ad9fb4b i128 is stable 2018-03-25 20:34:44 -05:00
Michael Wright
2b68f00722 Add tests to ensure that issue #2420 is resolved
The issue was probably fixed by ff32d5f7. Closes #2420.
2018-03-23 20:26:52 +02:00
Oliver Schneider
2d01f42dde
Merge pull request #2539 from Baelyk/master
Add suggestion to useless_format
2018-03-20 08:22:04 +01:00
Baelyk
48027105dc Add suggestion to useless_format
Resolves #2505

Suggests that you use `"foo".to_string()` instead of `format!("foo")`.
2018-03-19 09:27:15 -05:00
flip1995
ad459184a3 Don't lint comparison operators in arithmetic impls 2018-03-17 22:02:34 +01:00
Mateusz Mikuła
23bfa396a0 Format code
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-16 10:54:49 +01:00
Oliver Schneider
8749927973
Rustup 2018-03-16 09:44:20 +01:00
Mateusz Mikuła
3662ee76ab Merge branch 'miri' 2018-03-15 10:49:13 +01:00
Mateusz Mikuła
ca785afc31 Update tests
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-15 10:25:57 +01:00
Oliver Schneider
21f387d278
Update dependencies 2018-03-13 16:54:13 +01:00
Oliver Schneider
f7b2578aea
Update to rustc master 2018-03-13 11:38:21 +01:00
Hidehito Yabuuchi
ed769a3bc4 Ignore all macros in redundant_field_names 2018-03-11 13:57:28 +09:00
Karim Snj
ae5354e6ef lint: while immutable condition: do not lint constants 2018-03-07 18:25:09 +01:00
Oliver Schneider
4cf02c7e1a
Merge pull request #2483 from kimsnj/infinite_loop
immutable while condition
2018-03-07 08:09:48 +01:00
Karim Snj
814827113e lint: immutable condition: add internally mutable test 2018-03-06 18:27:11 +01:00
Oliver Schneider
7d5ecd5ad5
Merge pull request #2511 from flip1995/sus_impl
UnNeg and UnNot count as additional operations now
2018-03-06 14:35:54 +01:00
Niklas Fiekas
d55890a2b1 Increase unreadable_literal digits (fixes #1958) 2018-03-06 14:24:01 +01:00
flip1995
ed4535641b
UnNeg and UnNot count as additional operations now 2018-03-06 13:58:03 +01:00
Oliver Schneider
05f92b84c9
Merge pull request #2507 from ordovicia/redundant_field_names_range
Don't lint range syntax with var name `start` and/or `end`
2018-03-05 09:41:00 +01:00
Oliver Schneider
40ebff8c7a
Merge pull request #2493 from bootandy/fix_cow
Lint passing Cow by reference
2018-03-05 09:35:11 +01:00
Hidehito Yabuuchi
cdb60c6547 Make redundant_field_name not care range expressions
Hand-written `Range` struct family are treated normally.
2018-03-05 17:30:07 +09:00
Oliver Schneider
598acba7d5
Merge pull request #2497 from waywardmonkeys/single-char-pattern
Fix single_char_pattern for \n, \t, etc.
2018-03-05 08:43:17 +01:00
Oliver Schneider
6662aa41f9
Merge branch 'master' into fix_cow 2018-03-05 08:42:19 +01:00
Oliver Schneider
f071d1994f
Merge pull request #2504 from flip1995/lit_float_repr
Fix unreadable_literal lint for scientific float notation
2018-03-05 08:38:32 +01:00
Oliver Schneider
5b48b03375
Typo 2018-03-05 08:33:37 +01:00
Hidehito Yabuuchi
7b59557dcd Don't lint range syntax with var name start and end 2018-03-05 14:31:37 +09:00
HMPerson1
3045f432c7
Fix #2496 2018-03-04 22:56:03 -05:00
flip1995
86ce897084
Fix unreadable_literal lint for scientific float notation 2018-03-04 16:28:34 +01:00
bootandy
e3c13da830 Change recomendation to: &[type] from Cow<type> 2018-03-03 12:25:20 -05:00
Alex Butler
fc5b377cec Fix #2494 add suggestion for unreadable_literal
Add `rustc --explain E0308` line to relevant tests
2018-03-03 12:25:20 -05:00
Bruce Mitchener
769a1d9b6c Fix single_char_pattern for \n, \t, etc.
Single characters that are escaped weren't being searched / replaced
correctly in the hint string, so it was saying to replace, say,
`"\n"` with `"\n"` rather than `'\n'`.
2018-03-02 22:00:01 +07:00
Karim Snj
7d35fab304 lint: while loop: detect if no var from the condition is mutated 2018-03-02 00:01:08 +01:00
Karim Snj
37eca59438 lint: while immutable condition: refactor to use hir::Visitor 2018-03-01 22:00:43 +01:00
Alex Butler
42000c6cf9
Fix #2494 add suggestion for unreadable_literal
Add `rustc --explain E0308` line to relevant tests
2018-03-01 15:26:39 +00:00
bootandy
9a002e52e5 Lint passing Cow by reference
Add lint for reference to Cow to the same place in the code where
lint for reference to String lives.

https://github.com/rust-lang-nursery/rust-clippy/issues/2405
2018-02-28 10:24:10 -05:00
Karim Snj
5c1be4a4ba lint: immutable only vars in while condition 2018-02-25 18:25:31 +01:00
Guillem Nieto
8494f57c82 Fix author lint
The author lint was generating invalid code as shown on issue:
https://github.com/rust-lang-nursery/rust-clippy/issues/2442

I've changed the generated code to properly track cast
expressions.

Unfortunatelly, I've had to rewrite the `visit_decl` method, to
avoid that last if of the chain will be added. After looking at the code,
this last line was being added because of the `let x: char` part, but not
because of the `0x45df as char` expression.

It seems that let statements should not generate code on the author
lint, but I'm not sure that this is true or if I'm breaking
something on other code generation parts.

Finally, I've added a test for the author lint, but I'm not sure that
this needs to be added to the testsuite.
2018-02-24 02:19:47 +01:00
Oliver Schneider
575c3c4b54
Merge pull request #2471 from bootandy/fix_span2
Fix: point to correct problem part of code, update test
2018-02-23 08:31:57 +01:00
Oliver Schneider
5e6342d4ae
Merge pull request #2473 from phansch/handle_multiline_attributes
Lint multiline attributes properly
2018-02-21 21:44:04 +01:00
Philipp Hansch
d3d3d7d7be
Lint multiline attributes properly
This makes it so that the `empty_line_after_outer_attribute` lint only
checks for newlines between the end of the attribute and the beginning
of the following item.

We need to check for the empty line count being bigger than 2 because
now the snippet of valid code contains only `\n` and splitting it
produces `["", ""]`
Invalid code will contain more than 2 empty strings.
2018-02-21 21:29:05 +01:00
bootandy
a7c97256dc Stop unwanted newlines being applied on unwrap_or 2018-02-21 11:29:08 -05:00
bootandy
f3d1a0cec2 Add newlines in unwrap_or ui test 2018-02-20 12:37:30 -05:00
bootandy
941e062fd4 Fix: point to correct problem part of code
Fix span so it no longer contains the whole train-wreck of code and only
points to the problem function (for the unwrap_or lint).

https://github.com/rust-lang-nursery/rust-clippy/issues/2422

Update ui test methods - it had several cases where the error message
span is now shorter
2018-02-19 12:14:53 -05:00
Philipp Krones
c43e053f3f
Merge branch 'master' into suspicious_impl 2018-02-19 13:04:14 +01:00
flip1995
aa20277a17 Lint for suspicious implementations of arithmetic std::ops traits 2018-02-13 15:40:17 +01:00
TomasKralCZ
42120141bd Suggestion fixed, simplified lint logic. 2018-02-12 11:26:00 +01:00
TomasKralCZ
85642ddd23 Implement redundant field names lint #2244 2018-02-10 22:52:31 +01:00
Oliver Schneider
6feb0dd982
Fixes #2426 (if_same_then_else false positive) 2018-02-09 15:31:55 +01:00
Oliver Schneider
ff32d5f734
Fix #2427 2018-02-09 15:25:12 +01:00
Jonathan Goodman
44780aca5d make the copies.rs test actually test the correct lints 2018-02-08 13:26:50 -06:00
Oliver Schneider
6f48e37d22
Merge pull request #2444 from phansch/fix_incorrect_useless_attribute_suggestion
Partly fix incorrect useless_attribute suggestion
2018-02-07 09:07:46 +01:00
Philipp Hansch
81f5969704
Partly fix incorrect useless_attribute suggestion
This fixes an incorrect suggestion from the `useless_attribute` lint
when using `cfg_attr`.

Additionally, it will not show a suggestion anymore, if the attribute
begins on a previous line, because it is much harder to construct the
span of multi-line `cfg_attr` attributes as they don't appear in the AST.

To fix it completely, one would have to parse upwards into the file,
and find the beginning of the `cfg_attr` attribute.
2018-02-06 22:35:11 +01:00
Jonathan Goodman
73f2ba5ded don't suggest eliding 'static on associated consts 2018-02-06 12:22:34 -06:00
flip1995
63a7daf78c Make decimal_literal_representation a restriction lint 2018-02-06 13:05:20 +01:00
Guillem Nieto
bcf2e41421 Fix ICE comparing ExprRange
`eq_expr` on hir::utils was throwing an ICE due to an invalid
LateContext being used. Due to this missusage, it was generating an ICE
with the code on the following issue:
https://github.com/rust-lang-nursery/rust-clippy/issues/2423
2018-02-06 01:06:32 +01:00
Oliver Schneider
30a37efaac
Merge pull request #2433 from kimsnj/matches_sugg
Fix suggestions for ref matches
2018-02-05 08:21:21 +01:00
Oliver Schneider
7fddc6116e
Merge pull request #2415 from HMPerson1/fix-2356
Fix `ImplItem`s being ignored
2018-02-05 08:19:11 +01:00
Oliver Schneider
bef22006b4
Merge pull request #2419 from phansch/fix_doc_comment_false_positive
Fix false positive in empty_line_after_outer_attr
2018-02-05 08:17:29 +01:00
Karim Snj
21f606bd68 Removing extra newline 2018-02-04 13:55:37 +01:00
Karim Snj
9575dac491 Fix suggestions for ref matches 2018-02-04 13:41:54 +01:00
HMPerson1
10d2feddba
Fix const_static_lifetime 2018-02-02 02:03:21 -05:00
HMPerson1
ff83b3ecb9
Fix non_expressive_names 2018-02-02 01:54:07 -05:00
HMPerson1
3a4ea45821
Fix get_enclosing_block 2018-02-02 01:53:48 -05:00
Oliver Schneider
d5bac82837
Give travis a guaranteed existing directory for ui test output 2018-02-01 14:35:56 +01:00
Philipp Hansch
a64724fac4
Fix false positive in empty_line_after_outer_attr
Doc comments are syntactic sugar for #[doc] attributes, so this lint was
catching them, too.

This commit makes it so that doc comments are ignored in this lint.

I think, for normal attributes it makes sense to warn about following empty
lines, for doc comments, less. This way the user has some freedom over
the formatting.
2018-02-01 07:43:03 +01:00
Guillem Nieto
05ed421930 Update UI tests 2018-01-31 00:10:35 +01:00
Guillem Nieto
74ae9b15b5 Add question mark operator 2018-01-31 00:10:35 +01:00
flip1995
bd421cb5a5 Additionally suggest the semantic equal variant 2018-01-30 17:45:35 +01:00
flip1995
b7cb0752ff Improved suggestion on misrefactored_assign_op lint. Fixes #1239 2018-01-30 14:58:38 +01:00
Oliver Schneider
39d1d6081f
Merge pull request #2340 from phansch/newline_after_attributes
Warn on empty lines after outer attributes
2018-01-30 13:09:23 +01:00
Seiichi Uchida
a3c2323767 Add double comparions lint 2018-01-30 10:35:35 +09:00
Tim Nielens
0778ac81c8 #1121: already fixed, adding a test 2018-01-29 16:52:22 +01:00
Philipp Hansch
aade0d563e
Make lint work on all members of ast::Item_ 2018-01-29 10:03:52 +01:00
Philipp Hansch
83909398d2
Add test case for comments between item and attr 2018-01-29 10:03:52 +01:00
Philipp Hansch
80827c1f74
Warn on empty lines after outer attributes 2018-01-29 10:03:52 +01:00
Manish Goregaokar
4b9a0b8644 Update spans 2018-01-29 09:48:11 +05:30
Manish Goregaokar
bca80a83a5 mut_mut_macro is missing plugin(clippy) 2018-01-29 09:48:06 +05:30
Devon Hollowood
0413b3f6cf Add misaligned_transmute lint 2018-01-25 00:48:36 -08:00
Oliver Schneider
ea042657e5
Enable more patterns in the author lint 2018-01-24 13:04:06 +01:00
flip1995
31892e205e let invalid_regex point to the right place for raw strings 2018-01-23 16:52:14 +01:00
Oliver Schneider
8e7f76db9a
Merge pull request #2362 from flip1995/master
Lint for numeric literals that have a better representation
2018-01-23 15:54:35 +01:00
flip1995
600147926b Apply requested changes 2018-01-23 15:29:31 +01:00
flip1995
d7677fb2b6 Adapt to updated ui tests 2018-01-23 12:52:20 +01:00
flip1995
23f90afa1b Add configurable threshold, default: 4096 2018-01-23 12:34:40 +01:00
Phil Ellison
2132e5c58c Fix unnecessary_fold bug 2018-01-22 05:34:42 +00:00
Oliver Schneider
e6428873cb
Merge pull request #2350 from theotherphil/fold_any
Lint for using hand-writing a fold with the same behaviour as any
2018-01-19 13:31:00 +01:00
Oliver Schneider
71abd81d22 Update error count 2018-01-19 13:18:44 +01:00
Oliver Schneider
920fc17485 Don't run dogfood on windows or in the rustc test suite 2018-01-19 13:14:43 +01:00
Oliver Schneider
70302595a4
Merge branch 'master' of github.com:Manishearth/rust-clippy into fold_any 2018-01-19 12:10:24 +01:00
Oliver Schneider
9a2c50f3d6
Merge pull request #2364 from flip1995/precedence
Add macro check to precedence lint
2018-01-19 12:07:00 +01:00
Oliver Schneider
3c6064130b
Merge pull request #2367 from etaoins/inline-fn-without-body-lint
Lint for trait methods without bodies
2018-01-19 09:14:46 +01:00
Oliver Schneider
26c415ab2d
Merge pull request #2381 from HMPerson1/remove_is_unit_expr
Replace `is_unit_expr`
2018-01-19 09:14:04 +01:00
Michael Wright
79c6c60f51 Added further tests 2018-01-19 08:10:09 +02:00
Michael Wright
fca248957b Merge branch 'master' into option_option_pr 2018-01-19 07:56:46 +02:00
HMPerson1
8081f6fd6e
Replace is_unit_expr 2018-01-18 17:04:26 -05:00
Oliver Schneider
10c96e50c3
Don't run dogfood tests in the rustc test suite 2018-01-18 22:02:58 +01:00
Oliver Schneider
8217e33718
Only suggest implementing Copy if it can actually be done 2018-01-18 14:27:47 +01:00
Ryan Cumming
7467b83377 Suggest removing inline attributes
This adds a `suggest_remove_item` helper that will remove an item and
all trailing whitespace. This should handle both attributes on the same
line as the function and on a separate line; the function takes the
position of the original attribute.
2018-01-18 20:02:42 +11:00
Ryan Cumming
5f3c340bfb Lint for trait methods without bodies
As discussed in rust-lang/rust#47475 the #[inline] attribute is
currently allowed on trait methods without bodies (i.e. without a
default implementation). This is misleading as it could be interpreted
as affecting the implementations of the trait method. Add a lint for any
use of #[inline] on a trait method without a body.

Fixes rust-lang/rust#47475
2018-01-18 20:01:24 +11:00
Manish Goregaokar
552e950080 needless_pass_by_value: Whitelist RangeArgument (fixes #2357) 2018-01-18 14:30:53 +05:30
Manish Goregaokar
2a30c8a194 needless_pass_by_value: Add suggestion for implementing Copy (fixes #2222) 2018-01-18 14:30:47 +05:30
Manish Goregaokar
cf1fbaa36a needless_pass_by_value: Ignore for extern funcs (fixes #1844) 2018-01-18 14:30:32 +05:30
Michael Wright
d13af87d8a Fixed tests 2018-01-18 07:48:03 +02:00
Michael Wright
ec60baa864 Merge branch 'master' into option_option_pr 2018-01-18 07:21:48 +02:00
Phil Ellison
b73efad600 Add some reviewer comments 2018-01-17 21:06:16 +00:00
Phil Ellison
29a2dd4cb8 Fix bug. Don't expect lint when acc is on rhs 2018-01-17 20:11:40 +00:00
Phil Ellison
1cac693bc7 Lint on folds implementing .all, .sum and .product 2018-01-17 19:12:44 +00:00
Oliver Schneider
4f21b5b112
Update changed ui tests 2018-01-17 14:44:40 +01:00
Oliver Schneider
a2fdfc05d7
Merge pull request #2298 from goodmanjonathan/else_if_without_else
add new lint else_if_without_else
2018-01-17 09:35:58 +01:00
Michael Wright
e7567f2eac Made requested changes 2018-01-17 07:24:33 +02:00
Michael Wright
21fde9a9d1 Merge branch 'master' into option_option_pr 2018-01-17 06:52:00 +02:00
Phil Ellison
a64d19cc0e Fix error span to play nicely with rustfix 2018-01-16 21:20:55 +00:00
Manish Goregaokar
37f62a54f8 Show wider and more accurate suggestion for const_static_lifetime
fixes #2365
2018-01-16 20:46:44 +05:30
flip1995
877321ba32 Add macro check to precedence lint 2018-01-16 15:52:16 +01:00
flip1995
647da97622 Lint for numeric literals that have a better representation in another format 2018-01-16 14:01:07 +01:00
Oliver Schneider
61e2b7a4d6
Merge pull request #2355 from alusch/clone_on_ref_ptr_restriction
Fix #2048: Move `clone_on_ref_ptr` to the restriction lints
2018-01-16 10:40:12 +01:00
Oliver Schneider
28c3d0321a Update changed test output from rustc 2018-01-16 08:52:14 +01:00
Jonathan Goodman
40c6f431da add new lint else_if_without_else 2018-01-14 22:53:00 -06:00
Adam Lusch
f343cd22f6 Adds the missing turbofish 2018-01-14 20:19:55 -08:00
Adam Lusch
30de2e7106 Update UI test expected output 2018-01-14 20:10:36 -08:00
Adam Lusch
1615813960 Moves clone_on_ref_ptr to be a restriction lint
Also updates the suggestion to include the full type (e.g. `Arc<Foo>::clone(&rc)`)
and adds a case using trait objects to the UI tests.
2018-01-14 19:58:09 -08:00
Phil Ellison
ad164939ed Check that we're calling Iterator::fold 2018-01-14 20:04:34 +00:00
Phil Ellison
70a5535ffa Address some review comments 2018-01-14 18:18:09 +00:00
Oliver Schneider
2f62d803ab
Merge pull request #2349 from rust-lang-nursery/no-main-doc
Don't warn about missing docs for main()
2018-01-14 13:16:54 +01:00
Phil Ellison
1feb9fd550 Tidy using if_chain and snippet function. Actually check that the initial fold value is false. Remove some unwraps 2018-01-14 09:30:08 +00:00
Phil Ellison
f6e56d2559 First pass at linting for .any expressed as a .fold 2018-01-14 08:27:53 +00:00
Manish Goregaokar
7e63f93d81 Don't warn about missing docs for main()
Fixes #2348
2018-01-14 11:35:08 +05:30
Oliver Schneider
cc9008b7d4
Merge pull request #2347 from kimsnj/extrem_comp
Fix #1159: avoid comparing fixed and target sized types in lint
2018-01-13 12:27:36 +01:00
kimsnj
53c0ae0169 Fix #1159: avoid comparing fixed and target sized types in lint 2018-01-12 18:33:25 +01:00
Oliver Schneider
b863a00a4e
Merge pull request #2344 from HMPerson1/svar_to_cfn
Add lint to replace `const`s with `const fn`s
2018-01-12 14:59:06 +01:00
Oliver Schneider
7e21663f75
Merge pull request #2296 from DarrenTsung/test_types
Start regression tests for types.rs
2018-01-12 14:55:39 +01:00
HMPerson1
8505ee7028 Add lint to replace consts with const fns 2018-01-11 12:03:46 -05:00
Oliver Schneider
1245de1e46
Don't suggest changing explicit Clone impls if they have generics 2018-01-11 10:28:42 +01:00
Philipp Hansch
fded77d85e
Split up casting UI tests
Part of #2038
2018-01-06 11:22:20 +01:00
Pascal Hertleif
82d91c5fcb Add auto-fixable println!() suggestion
Fixes #2319
2018-01-04 12:46:26 +01:00
Michael Wright
6737bae9b1 Implemented option_option lint 2017-12-26 09:24:12 +02:00
Darren Tsung
0f4c40b229 Start regression tests for types.rs 2017-12-23 10:15:11 -08:00
Darren Tsung
50eb48e42b Create failing test for equal inside macro 2017-12-22 10:37:44 -08:00
Oliver Schneider
2179f4d790
Merge pull request #2284 from rust-lang-nursery/new-macro
Move mini-macro to proc macro
2017-12-20 21:56:00 +01:00
Manish Goregaokar
775372db90 Move mini-macro to proc macro
We can add a bang-style proc macro again once it stabilizes (we can use
the proc macro hack, but it's unnecessary for now)
2017-12-20 08:16:44 -08:00
Wilco Kusee
a6ccc6fe3d Also suggest as_mut for match_as_ref 2017-12-20 10:39:48 +01:00
Wilco Kusee
919601bc51 Lint for matching option as ref 2017-12-19 23:51:06 +01:00
Oliver Schneider
8ddcb81a15
Rustup and lazy_static version mismatch fix
fixes #2274
2017-12-15 10:05:32 +01:00
Oliver Schneider
f5f0273f53
Update ui tests to latest rustc changes 2017-12-07 11:21:37 +01:00
laurent
6c18811764 Revert the regex test change. 2017-12-01 19:59:40 +00:00
laurent
904f27a2ea Do raise a same-arms warning when the two arms are separated by an arm with a guard, fix #1996. 2017-12-01 19:25:43 +00:00
HMPerson1
c2c324ec65 Update ui test 2017-11-30 19:50:31 -05:00
HMPerson1
e2bc383383 Add linting for empty blocks too 2017-11-30 19:40:40 -05:00
HMPerson1
5fca6eb89e Fix #2160 2017-11-30 15:31:56 -05:00
Oliver Schneider
7d7fef1690
Fix #1925 2017-11-30 10:55:06 +01:00
Oliver Schneider
1c95a7cf35
Merge pull request #2251 from LaurentMazare/master
Add a couple small tests to the match-same-arm lint + fix a small issue in search_same.
2017-11-30 10:53:48 +01:00
Oliver Schneider
4d9c41f566
Use latest compiletest 2017-11-30 09:31:23 +01:00
laurent
c3ae2ddeb3 Fix a bug in search_same + add a test case. 2017-11-29 21:42:58 +00:00
laurent
3eb642bcdd Add another test. 2017-11-29 20:52:49 +00:00
laurent
f8dbd32433 Add a couple small tests to the match-same-arm lint. 2017-11-29 20:42:37 +00:00
Oliver Schneider
273ddafac5
Fix #2188 2017-11-29 17:20:00 +01:00
Oliver Schneider
d5b73c184b
Fix placement of new_without_default suggestion 2017-11-29 17:10:53 +01:00
Oliver Schneider
317e97bae7
Fix #2196 2017-11-29 17:06:27 +01:00
Oliver Schneider
e62727ee51
Add regression test (fixes #2234) 2017-11-29 16:05:13 +01:00
Oliver Schneider
0b0337d258
Fix #2247 2017-11-29 15:52:57 +01:00
Oliver Schneider
ad63e4eaef
Update ui output to latest nightly 2017-11-29 15:45:12 +01:00
Oliver Schneider
34da5d93ef
Merge pull request #2246 from lukasstevens/master
Check for word beginning in stutter lint
2017-11-27 11:05:37 +01:00
Oliver Schneider
656df3c5ed
Update stderr output to rustc changes 2017-11-27 10:20:38 +01:00
Lukas Stevens
d55d4e5144 Update ui tests 2017-11-26 18:57:34 +01:00
Oliver Schneider
af718413db
Rustup 2017-11-22 10:55:12 +01:00
Oliver Schneider
c5fa86da04
Merge pull request #2203 from clippered/float_cmp_const
Fix #1142 float constant comparison lint
2017-11-20 09:51:12 +01:00
Laurent Mazare
e7f4a9bb46 Fix for the new nightly version. 2017-11-20 07:47:28 +00:00
laurent
41a6d015ff More tests. 2017-11-19 11:29:25 +00:00
laurent
ed202b6055 Bugfix + add test. 2017-11-19 11:29:25 +00:00
Georg Brandl
76324851b5 tests: fixup arg handling for update-all-references
This script does not take any args, so $1 being empty is expected.
2017-11-18 16:11:55 +01:00
Georg Brandl
296edda3a9 const_static_lifetime: this applies not only to path types
For example, &'static [u8] or &'static (t1, t2).
2017-11-18 16:10:29 +01:00
Oliver Schneider
f975fb54f8
Merge pull request #2216 from LaurentMazare/master
Handle methods with an obvious negation in the non-minimal bool lint
2017-11-15 09:08:36 +01:00
laurent
25783fa485 Raise a lint when suggest has simplified the expression. 2017-11-14 21:14:08 +00:00
Oliver Schneider
bdf3887d22
Move 'handle_method_call_in_not' code into 'suggest' 2017-11-14 17:07:04 +01:00
Oliver Schneider
561d47f338
Merge remote-tracking branch 'origin/master' into laurent_master 2017-11-14 16:46:56 +01:00
Oliver Schneider
b464432972 Merge branch 'master' of github.com:Manishearth/rust-clippy into rust-test 2017-11-14 16:31:52 +01:00
Oliver Schneider
127c41f700
Apply changes that were required for running in the rustc test suite 2017-11-14 14:56:00 +01:00
Oliver Schneider
09d988521d
Merge pull request #2214 from rust-lang-nursery/nrlfp
Improve `needless_range_loop`
2017-11-10 10:11:20 +01:00
Oliver Schneider
299f1270a6
Rustup 2017-11-10 08:58:54 +01:00
Shotaro Yamada
b17899878f Build path from current_dir 2017-11-09 14:47:14 +09:00
Shotaro Yamada
5c0b99820b Use compiletest 0.3 2017-11-09 11:05:49 +09:00
laurent
82793768b7 Handle methods with an immediate negation in the non-minimal boolean lint, fixes #1930. 2017-11-07 21:43:24 +00:00
Oliver Schneider
1b323b9f35
Don't lint mixed slice indexing and usize indexing in needless_range_loop 2017-11-07 15:32:52 +01:00
Oliver Schneider
652df0fb79
Differentiate between mutable iteration and immutable iteration in needless_range_loop 2017-11-07 14:41:54 +01:00
Oliver Schneider
088555c4ea
Merge pull request #2209 from sinkuu/trait_methods
Fix false positive in needless_pass_by_value trait methods
2017-11-07 08:26:32 +01:00
laurent
c9681905ba Fix broken tests. 2017-11-06 23:26:44 +00:00
laurent
e2b9cf836a Fix merge issues. 2017-11-06 23:22:19 +00:00
sinkuu
6fb736bd42 Fix false positive in needless_pass_by_value trait methods 2017-11-07 06:33:49 +09:00
sinkuu
00081be73d Rustup 2017-11-07 06:32:12 +09:00
clippered
66bc12564a put back negative tests but allow float_cmp 2017-11-06 21:34:30 +11:00
clippered
ddaf8580d5 remove duplicate tests with float_cmp 2017-11-06 20:23:18 +11:00
clippered
cd3106d99f add more negative tests 2017-11-06 20:02:42 +11:00
Oliver Schneider
ed589761e6
Merge pull request #2202 from topecongiro/format
Run `cargo fmt`
2017-11-06 08:35:52 +01:00
Oliver Schneider
4018b0a495
Merge pull request #2197 from AlexEne/dissalow-underscores-and-numbrers
Warns if variable name is composed only of underscores and digits.
2017-11-06 08:11:45 +01:00
laurent
bcdf57e220 Refactor the never-loop detection, fixes #1991. 2017-11-05 14:43:28 +00:00
clippered
2787a60fc2 Fix #1142 float constant comparison lint 2017-11-05 09:37:17 +11:00
topecongiro
7a06d312fd Cargo fmt 2017-11-05 04:55:56 +09:00
Alexandru Ene
f92c91601e Addressed PR comments 2017-11-03 20:54:33 +00:00
sinkuu
d88cc5376e Add test to take Self as an argument 2017-11-03 17:56:26 +09:00
sinkuu
be7c4b4862 Fix test 2017-11-03 17:36:38 +09:00
sinkuu
cad33c0306 Extend needless_pass_by_value to methods 2017-11-03 17:36:38 +09:00
cgm616
3902b836e7 Update tests 2017-11-02 23:54:35 -05:00
cgm616
ee289c9f88 Merge branch 'master' of github.com:rust-lang-nursery/rust-clippy 2017-11-02 22:57:07 -05:00
Alexandru Ene
9d01468bc7 Warns if variable name is composed only of underscores and digits. 2017-11-03 01:01:41 +00:00
Oliver Schneider
cabbc781ca
Merge pull request #2189 from gendx/pr-1590
Start working on #1590
2017-11-02 10:29:30 +01:00
sinkuu
7fa27d9387 Lint transmute::<&[u8], &str> 2017-11-01 18:05:46 +09:00
kennytm
44d3ea5308 Fix lint_without_lint_pass 2017-10-31 10:04:02 -07:00
Manish Goregaokar
c526c51923 Update clippy for rustc 1.23.0-nightly (f0fe716db 2017-10-30) 2017-10-31 00:07:10 -07:00
G. Endignoux
87fd68731d Update UI tests. 2017-10-30 14:10:38 +01:00
G. Endignoux
f0a1eff1c4 Start working on #1590 2017-10-30 13:08:09 +01:00
Manish Goregaokar
09143cdaf0 Update tests; make it work with generics on context 2017-10-29 05:19:24 -04:00
cgm616
fed5a89076 Add tests for pub_restricted 2017-10-28 13:24:39 -05:00
cgm616
d094f98f0b Merge branch 'master' of github.com:rust-lang-nursery/rust-clippy 2017-10-28 12:55:16 -05:00
Alex Burka
2153d1e560 manual fixups if_let_chain -> if_chain 2017-10-23 17:53:30 -04:00
Oliver Schneider
2771378620 Merge pull request #2136 from ykrivopalov/identity_op_fixing
Identity/erasing operation lints
2017-10-23 09:25:08 +02:00
Oliver Schneider
b96639f23a Merge pull request #2143 from HMPerson1/master
Add lint for fallible impls of `From`
2017-10-23 09:21:31 +02:00
Oliver Schneider
6d89798119 Merge pull request #2163 from HMPerson1/useless_asref
Add lint for useless `as_ref` calls
2017-10-23 09:16:44 +02:00
cgm616
29626b883e Merge branch 'master' of github.com:rust-lang-nursery/rust-clippy 2017-10-22 10:14:44 -04:00
HMPerson1
bfa7a9b138 Add tests for generic code 2017-10-21 13:55:12 -04:00
cgm616
60c7bd47a5 Prevent should_implement_trait on private method
This should close #2159.
2017-10-21 07:53:57 -04:00
sinkuu
00d35eea26 Fix typo 2017-10-21 19:16:13 +09:00
HMPerson1
7206023b1b Change to TryFrom 2017-10-20 20:47:51 -04:00
HMPerson1
e5076d06db Add lint for From<String> 2017-10-20 20:47:30 -04:00
HMPerson1
ff4a850353 Add lint for useless as_ref calls 2017-10-20 20:33:19 -04:00
Oliver Schneider
0e489f3221 Merge pull request #2146 from MaloJaffre/println_empty_string
Add PRINTLN_EMPTY_STRING lint.
2017-10-20 17:39:34 +02:00
Malo Jaffré
22f3ca0e2c Add PRINTLN_EMPTY_STRING lint. 2017-10-20 16:45:32 +02:00
Paul Florence
acdd93a5cc Final .stderr for const_static_lifetime. 2017-10-20 10:17:55 -04:00
Paul Florence
0928168a79 Remove "#![feature(plugin)]" in the test". 2017-10-20 10:17:41 -04:00
Paul Florence
4bbda68d56 Better linting : use of span_lint_and_then. 2017-10-20 10:17:41 -04:00
Paul Florence
fbce504664 Added the test results. 2017-10-20 10:17:41 -04:00
Paul Florence
322effe415 Implementation of the const_static_lifetime lint. 2017-10-20 10:17:41 -04:00
Oliver Schneider
9293188b65 Merge pull request #2156 from cgm616/master
Deprecate should_assert_eq lint
2017-10-20 15:24:52 +02:00
Oliver Schneider
281bd790de Merge pull request #2148 from sinkuu/proc_macro
needless_pass_by_value false-positive in annotation
2017-10-20 11:12:21 +02:00
cgm616
4960d9de86 Deprecate should_assert_eq lint
This should close #2090.
2017-10-19 23:42:04 -05:00
sinkuu
9221bd9c97 Add test 2017-10-18 14:06:38 +09:00
clippered
dfa4cb7ade Fix #2123 : check that the source and destination are different for manual memcpy 2017-10-18 07:06:01 +11:00
Oliver Schneider
f01e45faa4 Merge pull request #2131 from devonhollowood/suggest-print
Suggest print
2017-10-17 15:26:41 +02:00
Oliver Schneider
343e438f9d Merge pull request #2120 from sinkuu/implicit_hasher
Implicit hasher lint
2017-10-17 15:24:20 +02:00
sinkuu
eea30777dd Type parameter change and type change are now in a multispan suggestion 2017-10-17 21:40:46 +09:00
sinkuu
a4f45e85b1 Use cx.access_levels.exported() instead of visibility 2017-10-17 21:13:17 +09:00
Yury Krivopalov
7b16f4d7ff Clarify message for erasing_op lint 2017-10-15 10:32:47 +03:00
Devon Hollowood
eda013d3af Change lint filename
suggest_print.rs -> explicit_write.rs
2017-10-14 21:42:14 -03:00
Devon Hollowood
aeeb38dab1 Change lint name
From `suggest_print` to `explicit_write`
2017-10-14 21:26:50 -03:00
Yury Krivopalov
033c99b1ba Add erasing_op lint
For expressions that can be replaced by a zero.
2017-10-14 12:34:37 +03:00
Yury Krivopalov
f68e408cb6 identity_op lint fix for '&' with unsigned types 2017-10-14 12:21:23 +03:00
sinkuu
c3332ca92e Fix panic with fake Range type 2017-10-13 21:51:57 +09:00
Devon Hollowood
e31a0941e2 Fix output for write macros 2017-10-12 05:53:20 -03:00
Devon Hollowood
1089380518 Add expected output 2017-10-12 05:33:00 -03:00
Devon Hollowood
888076b698 Add suggest_print lint 2017-10-12 05:30:35 -03:00
sinkuu
31f16b87b7 Use rustc_typeck::hir_ty_to_ty 2017-10-11 23:08:36 +09:00
sinkuu
5a61d88fa1 Apply suggestions 2017-10-11 22:17:00 +09:00
Oliver Schneider
f0aa2c1587 Merge pull request #2127 from rust-lang-nursery/enum_variant_names_fp
Don't lint accidental "prefixes" on enum variants
2017-10-11 13:16:59 +02:00
Oliver Schneider
58002b0e37 Merge pull request #2119 from camsteffen/never_loop
Another never_loop fix
2017-10-11 08:21:28 +02:00
sinkuu
159cc8413c Add implicit_hasher lint (#2101) 2017-10-11 12:10:26 +09:00
Lukas Stevens
4438c41d14 Make suggested changes
- Fix copy-paste error
- Check for opt.map_or argument after ensuring that opt is an Option
- Use span_lint_and_then and span_suggestion
- Update reference
2017-10-10 15:35:24 +02:00
Lukas Stevens
eb53cca768 Add lint for opt.map_or(None, f)
Change to Warn and add multiline support

Fix typo

Update reference
2017-10-10 13:37:45 +02:00
Oliver Schneider
af6e2a1e4e
Don't lint accidental "prefixes" on enum variants 2017-10-10 12:37:59 +02:00
Oliver Schneider
b62b1b68ed Merge pull request #2126 from camsteffen/split-tests
Split some UI tests
2017-10-10 10:06:14 +02:00
Oliver Schneider
408b5220a8 Merge pull request #2122 from sinkuu/local_span
Test failure fix with rustc 1.22.0-nightly (150b625a0 2017-10-08)
2017-10-10 09:39:10 +02:00
Oliver Schneider
28c401f9db Merge pull request #2118 from chyvonomys/relax-needless-loop
relax `needless_range_loop` so that it reports only direct indexing
2017-10-10 09:37:51 +02:00
Cameron Steffen
35882b09da move get_unwrap tests 2017-10-10 00:14:47 -05:00
Cameron Steffen
90b428e88d move ok_expect tests 2017-10-10 00:03:39 -05:00
Cameron Steffen
3356d121df move string_extend tests 2017-10-09 23:57:17 -05:00
Cameron Steffen
6d94167014 move cstring tests 2017-10-09 23:39:45 -05:00
Cameron Steffen
5eeadcfc43 move unnecessary clone tests 2017-10-09 23:38:56 -05:00
Cameron Steffen
18717ae088 move single_char_pattern tests 2017-10-09 23:37:46 -05:00
Cameron Steffen
c1a147f48e move starts_ends_with tests 2017-10-09 23:36:29 -05:00
sinkuu
9ebc30cb0c rustc 1.22.0-nightly (150b625a0 2017-10-08) 2017-10-09 22:49:54 +09:00
Cameron Steffen
9ccb7108b5 fix never_loop 2017-10-08 17:26:39 -05:00
Cameron Steffen
a013568f70 add never_loop tests 2017-10-08 17:03:34 -05:00
Andriy S. from cobalt
1dc0b5c9ec tests for needless_range_loop 2017-10-08 22:37:04 +03:00
Oliver Schneider
73a1dd8e7f Merge pull request #2117 from sinkuu/improve_take_by_value
Improve needless_pass_by_value
2017-10-08 20:14:55 +02:00
Niklas Fiekas
16781a1d89 Add tests for range_plus_one and range_minus_one 2017-10-08 14:15:37 +02:00
Oliver Schneider
a54baad4fa Merge pull request #2112 from topecongiro/issue-2109
Add a suggestion to replace `map(f).unwrap_or(None)` with `and_then(f)`.
2017-10-08 11:51:15 +02:00
sinkuu
2be6245179 Duplicate ptr_arg's suggestion logic 2017-10-08 17:51:44 +09:00
sinkuu
bf97cd0338 Reduce false-positives for needless_pass_by_value lint
Excluding a type whose reference also fulfills the trait bound.
2017-10-08 17:25:56 +09:00
Chris Emerson
dcaaab3801 Add a test with a struct containing a String. 2017-10-07 23:32:09 +01:00
Chris Emerson
fcdce8fc1d Merge branch 'master' into no_effect_with_drop 2017-10-07 23:24:36 +01:00
Seiichi Uchida
7f4b583c47 Add multiline case for test against map(f).unwrap_or(None) 2017-10-07 21:14:30 +09:00
Seiichi Uchida
f5c941a404 Update OPTION_MAP_UNWRAP_OR lint
Add a suggestion to replace `map(f).unwrap_or(None)` with `and_then(f)`.
2017-10-06 22:06:47 +09:00
Cameron Steffen
d6b35f9839 add never_loop test 2017-10-05 23:46:08 -05:00
sinkuu
1b1b41a5e6 Test if #[allow] works 2017-10-04 22:26:41 +09:00
sinkuu
771d2220d2 Add identity_conversion lint (fixes #1051) 2017-10-04 22:16:16 +09:00
PizzaIter
47df717229 Add lints transmute_int_to_* 2017-10-03 14:27:42 +02:00
Oliver Schneider
50ffaca4c9
Reduce the hackiness of cargo-clippy 2017-10-03 12:07:24 +02:00
Oliver Schneider
ebc9891fc6 Merge pull request #1838 from rust-lang-nursery/fix-doc
Don't lint autolinks in `doc_markdown`
2017-09-30 17:10:09 +02:00
mcarton
aca6c1e065 Have a separate message for raw URLs in doc 2017-09-30 14:59:22 +02:00
mcarton
e40c270d4f Don't lint autolinks in doc_markdown 2017-09-30 14:46:55 +02:00
Laura Peskin
ddad5e0f86 add tests for false positives 2017-09-29 21:01:11 -04:00
Laura Peskin
7fd11d23b0 add ui test for invalid_ref 2017-09-29 21:01:10 -04:00
Laura Peskin
f3e51d8d65 add lint for creation of invalid references 2017-09-29 21:01:10 -04:00
mcarton
7e956ac7c4 Fix regression with print! 2017-09-29 19:13:21 +02:00
mcarton
cae9cedeb5 Fix regression with format! 2017-09-29 18:36:03 +02:00
Oliver Schneider
bc76f397c6 Merge pull request #2084 from ykrivopalov/bit_mask_verbosity_threshold
Configuration option for VERBOSE_BIT_MASK threshold
2017-09-29 08:49:27 +02:00
Manish Goregaokar
3159a7f2a1 Update ... -> ..= in tests 2017-09-28 10:40:37 -07:00
Manish Goregaokar
387efd459c
Merge branch 'pr-1945' 2017-09-25 20:11:10 -07:00
Manish Goregaokar
bfc31536c7 Make it a ui test, update 2017-09-25 18:32:05 -07:00
Manish Goregaokar
04c44fa3fe Update line numbers 2017-09-25 13:52:17 -07:00
Michal Budzynski
44ecc19a3f stabilizing feature iterator_for_each for rust 1.21.0 2017-09-25 13:45:38 -07:00
Yury Krivopalov
a3ad409341 Configuration option for VERBOSE_BIT_MASK threshold
By default is 1. u64, because I didn't figure out how to deserialize
u128 option from config.
2017-09-25 23:38:49 +03:00
Manish Goregaokar
6842a522bb Merge pull request #2079 from rust-lang-nursery/ptr_arg-vs-capacity
avoid linting `ptr_arg` if `.capacity()` is called.
2017-09-25 10:22:57 -07:00
Laura Peskin
d7867ef8c1 add lint for mutable borrow; may have false positives. pushed for feedback 2017-09-25 02:00:21 -04:00
Laura Peskin
9a17150a06 refactor, add spans to warnings, add tests 2017-09-24 15:40:17 -04:00
Manish Goregaokar
d0eff10a7c Update test, fix lint 2017-09-24 15:40:16 -04:00
Laura Peskin
319f12a4c4 implement lint for mutable range bound 2017-09-24 15:40:16 -04:00
Laura Peskin
b091fb9b24 add lint declaration and example that should trigger the lint 2017-09-24 15:40:16 -04:00
Oliver Schneider
4ab2223e59 Merge pull request #2060 from mrecachinas/feature/int-plus-one
Addresses #1955 - Suggests >= y + 1 become > y
2017-09-24 13:57:56 +02:00
Manish Goregaokar
50e410e796 Update test expectations 2017-09-23 13:35:06 -07:00
Michael Recachinas
21e9a1285d Use span_lint_and_then as per feedback 2017-09-23 19:32:11 +01:00
Andre Bogus
1e0268fda8 avoid linting ptr_arg if .capacity() is called. Also suggest removing .as_str() where applicable.
THis fixes #2070.

Also fixes a few formatting mishaps
2017-09-20 23:59:23 +02:00
Chris Emerson
f680eb164d Update unnecessary_operation and no_effect to not suggest removing
structs/enums wrappers when that type implements Drop as noted
in #2061.
2017-09-18 20:07:33 +01:00
Michael Recachinas
bb40bd68a4 Add tests for 'int_plus_one' 2017-09-17 17:27:40 +01:00
Oliver Schneider
2bb8efdb4d Merge pull request #2058 from rust-lang-nursery/ptr_arg-vs-clone
add suggestions for .clone() in ptr_arg fns
2017-09-17 15:37:21 +02:00
Marcus Klaas
48ed3c058f Extend MANUAL_MEMCPY lint so that it also detects manual clones between slices 2017-09-16 19:17:22 -04:00
Marcus Klaas
a6206cc5f8 Add test for manual slice clones 2017-09-16 18:53:55 -04:00
llogiq
708a818094 Merge pull request #2057 from topecongiro/issue-1818
Enhance CHARS_*_CMP lint
2017-09-16 09:16:55 +02:00
Andre Bogus
72be166756 add suggestions for .clone() in ptr_arg fns 2017-09-16 09:10:26 +02:00
topecongiro
d5d300c034 Update tests 2017-09-16 14:50:30 +09:00
topecongiro
d8afe2ccbc Update tests 2017-09-16 11:27:46 +09:00
Seiichi Uchida
0215a1acb0 Update a test 2017-09-14 22:27:29 +09:00
topecongiro
49d388d4ec Remove '\t' from .stderr
to make cargo test pass
2017-09-14 13:18:34 +09:00
Oliver Schneider
32a9394490
Rustup 2017-09-13 15:34:04 +02:00
Oliver Schneider
36cd745640 Regressions (#2041) 2017-09-12 14:25:58 +02:00
Andre Bogus
e7e8e79020 suggestion for ptr_arg 2017-09-10 19:32:24 +02:00
Aaron Hill
d318ced660
Add CLONE_ON_REF_PTR lint
Closes issue #1645
2017-09-09 21:52:19 -04:00
Oliver Schneider
78f6db907c
Soft rustup (only fixed some tests) 2017-09-08 12:28:31 +02:00
Manish Goregaokar
8aa1d118b3 Merge pull request #2004 from sunfishcode/master
When suggesting `from(x)` for lossless casts, strip parens from `x`.
2017-09-05 15:09:39 -07:00
Manish Goregaokar
0ceba6bed6 format comment 2017-09-05 14:19:51 -07:00
Manish Goregaokar
44b852b10e Merge pull request #2023 from montrivo/while_let_loop
`while_let_loop` doesn't take into account break-with-value #1948
2017-09-05 14:19:00 -07:00
Tim Nielens
7489a84c6a while_let_loop doesn't take into account break-with-value #1948 2017-09-05 22:28:30 +02:00
Oliver Schneider
8c824e4cbc Also ignore continue statements in is_unit_expr 2017-09-05 12:12:44 -07:00
Dan Gohman
396cfa7055 Only strip parens for binary expressions. 2017-09-05 10:55:08 -07:00
Dan Gohman
ffa0bd24ed Add a testcase demonstrating how precedence interacts with the lossless-cast lint. 2017-09-05 10:55:08 -07:00
Dan Gohman
35cf2715dc When suggesting from(x) for lossless casts, strip parens from x. 2017-09-05 10:55:04 -07:00
Marcus Klaas
90f345df94
Add lint to detect manual slice copies 2017-09-05 12:56:26 +02:00
Oliver Schneider
b32631794a
Rustfmt for_loop.rs and add false positive tests 2017-09-05 12:53:52 +02:00
Oliver Schneider
e4524ac4de
Run nightly rustfmt 2017-09-05 12:39:27 +02:00
Oliver Schneider
7757c893ef
Fix len_zero ICE 2017-09-04 17:05:47 +02:00
Manish Goregaokar
35eda0531a
Fix unit_expr expectations and changelog entry 2017-09-03 14:14:20 -07:00
Zaki Manian
44f694d0a1 Rustfmt tests 2017-09-03 13:46:49 -07:00
Zaki Manian
8b53f2238b Fix all the clippy lints
Add false positive tests
2017-09-03 13:39:49 -07:00
Zaki Manian
e0caf26586 RustFmt file and tests 2017-09-03 11:19:59 -07:00
Zaki Manian
eb7955b265 More relevant tests 2017-09-03 10:39:28 -07:00
Zaki Manian
436d838ad7 Update unit tests 2017-09-03 09:12:55 -07:00
Zaki Manian
33e86407fd early tests 2017-09-03 08:56:34 -07:00
Oliver Schneider
ff91c6359a
wiki -> docs 2017-09-01 12:34:10 +02:00
Oliver Schneider
c64073b2f5
Deprecate the wiki and remove the lint list from the README (fixes #1933) 2017-09-01 12:34:05 +02:00
Dan Gohman
1ea70116d3 Enable the cast_lossless warning by default. 2017-08-29 05:48:56 -07:00
Oliver Schneider
6bc7893b70 Merge pull request #1956 from sunfishcode/master
Add a lint for lossless casts.
2017-08-29 08:50:36 +02:00
Tim Nielens
ec79970771 len_without_is_empty false positive #1740 2017-08-28 23:18:12 +02:00
Oliver Schneider
73d87d966d
Update tests to current rustc 2017-08-28 18:16:16 +02:00
Dan Gohman
7714203c72 Add a lint for lossless casts. 2017-08-28 08:42:33 -07:00
Oliver Schneider
23bc6508bb Merge pull request #1861 from CBenoit/master
Add example for needless borrowed ref lint and register it
2017-08-28 14:34:30 +02:00
Andre Bogus
df903edddd New lint: (maybe_)infinite_iter
This fixes #1870 (mostly, does not account for loops yet)
2017-08-25 22:20:52 +02:00
Alexey Zabelin
695bedbe27
Rename match_path_old to match_path
The old `match_path` was renamed to `match_qpath`.

As per #1983.
2017-08-24 20:42:50 -04:00
Oliver Schneider
ab362031ed Merge pull request #1959 from DarkEld3r/1884-borrowed-box-any
Fix borrowed_box lint for Box<Any>
2017-08-24 23:59:15 +02:00
Oliver Schneider
36e417cce5 Merge pull request #1982 from rust-lang-nursery/bytecount
new lint: naive_bytecount
2017-08-24 09:09:56 +02:00
Andre Bogus
6d989c729d add closure arg check, also catch non-consts 2017-08-23 17:54:35 +02:00
Stanislav Tkach
45ff467c31 Fix borrowed_box lint for Box<Any> 2017-08-23 17:00:39 +03:00
Andre Bogus
70e34077d5 new lint: naive_bytecount 2017-08-22 23:45:08 +02:00
Tim Nielens
572b3388ac lint #1674: lifetimed types exclusion
add expect() message and update test results
2017-08-22 19:22:47 +02:00
Tim Nielens
3f575d874b lint #1674: lifetimed types exclusion 2017-08-22 19:08:49 +02:00
Oliver Schneider
992d88ab58 Merge pull request #1977 from rust-lang-nursery/panic
Fix a panic and a false positive
2017-08-22 10:20:02 +02:00
Andre Bogus
2362177aaf fix #768 by checking for message macro expansion 2017-08-21 23:23:54 +02:00
Oliver Schneider
c3ef220bba
Rebase and update ui test 2017-08-21 14:22:41 +02:00
Oliver Schneider
66346b22ff Merge pull request #1973 from rust-lang-nursery/fix-1920
remove stars at the beginning of multiline comments
2017-08-21 13:52:26 +02:00
Oliver Schneider
3eab44acb1
Don't trigger Self suggestion inside derives 2017-08-21 12:58:06 +02:00
Oliver Schneider
56068b1b67
Fix ICE #1969 2017-08-21 12:57:33 +02:00
Oliver Schneider
f1847f7a98
Test changes 2017-08-21 10:26:46 +02:00
Oliver Schneider
5e5478a3c3 Merge pull request #1931 from rust-lang-nursery/move_links
Change all links to reflect the move to rust-lang-nursery
2017-08-21 09:35:19 +02:00
Andre Bogus
93c48a0977 remove stars at the beginning of multiline comments 2017-08-19 22:52:49 +02:00
Oliver Schneider
d1eecbaa2f Merge pull request #1965 from montrivo/use_self
lint #1674: replace struct name with `Self` when applicable
2017-08-18 20:54:18 +02:00
Tim Nielens
7aebe3a690 lint #1674: replace struct name with Self when applicable
SelfType const and suggestion
2017-08-18 19:46:50 +02:00
Joonas Koivunen
171f7b4eb7 tests/ui/let_unit: fix comment and example code
The previous version would had deadlocked as the Sender remained alive
and iterator would had never became complete. Just in case someone
decided to run it.
2017-08-18 17:29:05 +03:00
Joonas Koivunen
cf8e95eb22 is_from_for_desugar: add match for for _ in x
This will avoid `let_unit_value` in the examples in the ui-test.
It might match too widely.
2017-08-18 17:07:39 +03:00
Tim Nielens
7759bd6111 lint #1674: replace struct name with Self when applicable 2017-08-18 01:11:39 +02:00
Mateusz Mikula
0d244d3f39
Fix verbose_bit_mask off by one error
Fixes #1940
2017-08-14 16:22:20 +02:00
Oliver Schneider
4470d7a8ca Merge branch 'master' into move_links 2017-08-14 10:07:26 +02:00
Oliver Schneider
d6fc34fd08 Update for rustc output changes 2017-08-14 09:54:47 +02:00
Oliver Schneider
459cf467c5 Rustup 2017-08-14 09:54:47 +02:00
Oliver Schneider
b25b6b3355
Rustfmt 2017-08-14 09:43:26 +02:00
Andre Bogus
f515d7bb67 Change all links to reflect the move to rust-lang-nursery 2017-08-06 23:10:55 +02:00
Andre Bogus
76ca4dca85 unify checks into single visitor, fix block walk 2017-08-04 07:48:43 +02:00
Andre Bogus
3b7f3dc8e7 WIP: Find binding or assignment within outer loop 2017-08-03 22:11:58 +02:00
Oliver Schneider
9b3ea4264f Update to latest compiletest version 2017-08-02 18:07:05 +02:00
Oliver Schneider
74c776585c Move all our tests back to ui tests 2017-08-01 17:54:21 +02:00
Oliver Schneider
3a61b452a2
Create a lint authoring helper (generates matching code) 2017-08-01 12:55:52 +02:00
Oliver Schneider
065974c8ae Fix typo in previous commit 2017-07-27 13:37:21 +02:00
Oliver Schneider
34a3e9c157 Wrong placement of inner attribute in previous commit 2017-07-27 13:35:34 +02:00
Oliver Schneider
b4115fc245 Rustc doesn't generate expansion info for cfg! 2017-07-27 13:04:27 +02:00
Oliver Schneider
f889ba95d3 Fix ui tests 2017-07-21 10:40:23 +02:00
messense
b862b9b115
Update windows ui tests 2017-07-03 14:53:52 +08:00
messense
95f04f80fb
Update ui tests 2017-07-03 12:37:14 +08:00
Georg Brandl
6b6253016f Update stderr files for change in error reporting
rustc now (https://github.com/rust-lang/rust/issues/33525) does not
report an error count anymore, because it was not correct in many cases.
2017-05-26 16:54:07 +02:00
Oliver Schneider
6982d66a59 Enable 64bit vs 32bit tests 2017-05-17 18:15:21 +02:00
Oliver Schneider
83ddce4a90 Use -Zremap-path-prefix to create system independent paths 2017-05-17 17:51:35 +02:00
Oliver Schneider
fdbc62dd4f Use the workspace target directory 2017-05-17 15:21:57 +02:00
Oliver Schneider
4465bc3e3f Make most tests an example so we can run them one by one 2017-05-17 14:19:44 +02:00
Andre Bogus
e75d7ffd2d distinguish debug_assert 2017-05-15 22:49:20 +02:00
mcarton
b6326121ab Fix span in blacklisted_name 2017-05-14 14:58:16 +02:00
Oliver Schneider
4d5e25f31d Update to rustc 1.19.0-nightly (826d8f385 2017-05-13)
fixes #1759, #1758
2017-05-14 09:56:10 +02:00
Oliver Schneider
29cb2f7eba Fix various wrong uses of NestedVisitorMap::All 2017-05-12 12:02:42 +02:00
Oliver Schneider
672045689e Fix #1730 2017-05-11 19:02:19 +02:00
Oliver Schneider
8300f0c080 Merge pull request #1747 from Manishearth/mut_fp
Fixes #1735
2017-05-11 18:18:58 +02:00
Luis de Bethencourt
6f3679b8e4 clean tests/ui/zero_div_zero.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
b5a124bc27 clean tests/ui/while_loop.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
45949c0da9 clean tests/ui/vec.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
300a82c295 clean tests/ui/used_underscore_binding.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
fd3c001ec9 clean tests/ui/unused_io_amount.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
d0b932fb53 clean tests/ui/unsafe_removed_from_name.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
cf7303d217 clean tests/ui/unicode.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
81ee7f752e clean tests/ui/transmute.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
24324f84d8 clean tests/ui/toplevel_ref_arg.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
80ca0484c7 clean tests/ui/swap.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
a7635aa1c8 clean tests/ui/strings.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
c79a350c55 clean tests/ui/short_circuit_statement.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
ffb768cf8d clean tests/ui/serde.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
bf6d4b7129 clean tests/ui/regex.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
36ba4885ab clean tests/ui/reference.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
7d2e0cb435 clean tests/ui/redundant_closure_call.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
169f35712c clean tests/ui/print.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
ec343e1524 clean tests/ui/precedence.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
69139facb2 clean tests/ui/ok_if_let.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
c9190f681d clean tests/ui/non_expressive.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
efbaf09308 clean tests/ui/no_effect.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
47c17e63e7 clean tests/ui/new_without_default.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
747a20153c clean tests/ui/neg_multiply.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
cd55b87874 clean tests/ui/needless_return.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
b4a20aedf9 clean tests/ui/needless_bool.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
ac00b1d70b clean tests/ui/mut_mut.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
9ece185c45 clean tests/ui/methods.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
409eea2b51 clean tests/ui/mem_forget.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
86d5ffae8a clean tests/ui/matches.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
a5e66fa34b clean tests/ui/literals.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
cf9370f670 clean tests/ui/lifetimes.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
2df0161973 clean tests/ui/let_if_seq.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
7b2766af4a clean tests/ui/len_zero.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
3ca67910a8 clean tests/ui/if_let_redundant_pattern_matching.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
2389f9e94c clean tests/ui/functions.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
df5d12a3ec clean tests/ui/formatting.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
6d2329f2cb clean tests/ui/for_loop.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
faca269488 clean tests/ui/float.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
bc9cdf1d64 clean tests/ui/eval_order_dependence.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
fbc6b26592 clean tests/ui/eta.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
8fc00c57b6 clean tests/ui/eq_op.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
5013f49195 clean tests/ui/entry.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
856d64d43e clean tests/ui/doc.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
e3aa074033 clean tests/ui/derive.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
e2cce4809b clean tests/ui/copies.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
5e45d09c4f clean tests/ui/conf_french_blacklisted_name.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
aa3d361bec clean tests/ui/collapsible_if.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
ed713d67d6 clean tests/ui/cmp_owned.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
17284bacee clean tests/ui/cast.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
34e4c0f9e3 clean tests/ui/booleans.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
5865c2aacd clean tests/ui/bool_comparison.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
cc923b5d0e clean tests/ui/block_in_if_condition.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
0c9d9d9f6c clean tests/ui/blacklisted_name.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
ac4ce0b2fe clean tests/ui/assign_ops2
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Luis de Bethencourt
e18a250139 clean tests/ui/absurd-extreme-comparisons.rs
Cleaning the empty lines for clarity.
2017-05-11 16:22:32 +01:00
Oliver Schneider
81b35d197b Fixes #1735 2017-05-11 16:32:06 +02:00
Oliver Schneider
fb6895836f Address PR comments 2017-05-11 15:36:27 +02:00
Oliver Schneider
2cd3366817 Fixes #443 2017-05-10 13:42:19 +02:00
Oliver Schneider
3b3e47f451 Merge pull request #1738 from Manishearth/serde
Update serde to 1.0
2017-05-10 08:55:36 +02:00
Oliver Schneider
dee53fa1e2 Merge pull request #1728 from Manishearth/inspector
Print type adjustments in the inspector
2017-05-09 15:26:01 +02:00
Oliver Schneider
31b2bf4ab9 Update our config reading to serde 1.0 2017-05-09 15:23:38 +02:00
Oliver Schneider
8225c23a33 Update to serde 1.0 2017-05-09 15:23:10 +02:00
Luis de Bethencourt
f1434d2023 clean tests/ui/assign_ops.rs
When all //~ were removed from tests, these were replaced with empty
lines to leave the numbers in the expected stderr untouched.

Cleaning the empty lines for clarity.
2017-05-08 14:05:02 +01:00
Oliver Schneider
866239b1a8 Add a test showing a false positive on needless_borrow 2017-05-05 14:26:14 +02:00
Oliver Schneider
a6c8464dde Update to rustc 1.19.0-nightly (6a5fc9eec 2017-05-02) 2017-05-03 12:51:47 +02:00
Oliver Schneider
e3084cc085 Fix #1698 (ICE regression in clippy's const eval) 2017-04-28 18:10:10 +02:00
Oliver Schneider
96b25cdaf2 Add regression tests for op_ref 2017-04-28 17:07:39 +02:00
Oliver Schneider
7aa42073f2 Fix op_ref false positives 2017-04-28 17:03:47 +02:00
Oliver Schneider
5381c4fcf6 Update ui tests to new rustc range printing 2017-04-25 10:57:44 +02:00
Oliver Schneider
68369e5d37
Merge remote-tracking branch 'origin/master' into yati_master 2017-04-25 10:31:40 +02:00
mcarton
b20a6a773c
Update tests to new format of multiline errors 2017-04-23 15:39:41 +02:00
Yati Sagade
cac15d24f9 needless_continue: Remove indentation of suggestion code.
As per a suggestion by Oliver on the PR thread, maintaining indentation
in the suggested code is futile because of the changes in the compiler
and the messiness of real-world code. rustfmt will do the indentation if
required, so we don't need to do it.
2017-04-13 21:48:52 +02:00
Oliver Schneider
5842463562 Run rustfmt 2017-04-12 11:06:32 +02:00
Oliver Schneider
3534149035 Update ui tests 2017-04-11 16:19:27 +02:00
Oliver Schneider
679e98530a
Merge remote-tracking branch 'origin/master' into yati 2017-04-11 16:16:10 +02:00
Oliver Schneider
21d8fbd082 Don't lint for lifetime bounds required by traits 2017-04-11 15:44:13 +02:00
Oliver Schneider
fae1e646ee Remove useless warning 2017-04-11 14:34:39 +02:00
Oliver Schneider
2eae102cd1 Don't lint lifetimes after trait objects 2017-04-11 14:29:58 +02:00
Oliver Schneider
9a4c0a1c72 Don't lint about unused lifetimes if the lifetimes are used in the body of the function 2017-04-11 14:09:58 +02:00
Oliver Schneider
7b6111677a Latest nightly produces more ellipses in output 2017-04-10 15:36:07 +02:00
Oliver Schneider
b76ce176bb Fix op_ref in case of nonexisting operations 2017-04-10 15:10:19 +02:00
Yati Sagade
62548f447c needless_continue: Add ui test
The test program contains both conditions tested by the lint, i.e.,
a redundant continue in the `if` and `else` blocks within a loop. Maybe
splitting them out and also having a program that should *not* trigger
the lint warning is better.
2017-04-09 14:20:14 +02:00
Yati Sagade
69928906f4 needless_continue: Add tests for helper functions to the needless_continue lint.
Creating a test file per function sounds a bit excessive, so just
clubbing all needless_continue specific function tests into this module.
2017-04-09 14:12:01 +02:00
Yati Sagade
a099748113 utils: Add tests for the align_blocks helper in utils. 2017-04-09 14:09:54 +02:00
Oliver Schneider
f1e905f620 Reintroduce #768 so we can publish 2017-04-07 11:21:39 +02:00
Oliver Schneider
3052000c73 Merge pull request #1649 from ensch/master
Fix for rustc 1.18.0-nightly (5c94997b6 2017-03-30)
2017-04-07 11:13:44 +02:00
Oliver Schneider
f32fab1c8f panic!("{}") lint is broken 2017-04-06 16:49:03 +02:00
Oliver Schneider
6d921b4734 fix various rustup failures 2017-04-06 16:48:48 +02:00
Peter Gerber
71a788cbd7 correct error message for option_map_unwrap_or_else lint
Remove erroneous "with " in suggested alternative call.
2017-04-01 15:54:27 +02:00
Enrico Schmitz
7c94a62048 Reenable mut_mut_macro.rs test 2017-04-01 00:25:23 +02:00
Enrico Schmitz
8f9fb97eb6 First try for a fix for rustc 1.18.0-nightly (5c94997b6 2017-03-30 2017-03-31 19:23:35 +02:00
Oliver Schneider
5547fbb770 Fix accidental newline in diagnostic and missing entries in lint_array! 2017-03-24 10:21:12 +01:00
Oliver Schneider
8ae82eb4ab
Merge remote-tracking branch 'origin/master' into 1537-drop_copy 2017-03-24 10:11:46 +01:00
sinkuu
a712271df6 Filter out proc_macro_derive functions (fixes #1615) 2017-03-21 17:09:21 +09:00
Enrico Schmitz
f8df4aed0f Fix for rustc 1.17.0-nightly (6eb9960d3 2017-03-19) 2017-03-21 00:22:19 +01:00
Oliver Schneider
2d145b2ef5 don't lint macro_rules! in items_after_statements 2017-03-13 11:09:56 +01:00
Oliver Schneider
40d50fe8b2 Don't lint nan_cmp and zero_ptr in constants 2017-03-07 12:58:07 +01:00
Oliver Schneider
a33930f815 Fix single-match-else in the presence of macros expressions expanding to blocks 2017-03-03 16:56:16 +01:00
Oliver Schneider
26270c7451 Fix ice 2017-03-03 14:46:33 +01:00
Oliver Schneider
51295960bf Fix invalid_upcast_comparisons lint for same size sign casts 2017-03-02 10:41:20 +01:00
Oliver Schneider
7bfa53f504 Almost there 2017-03-01 18:46:18 +01:00
Enrico Schmitz
d4050c275e Remove old tests for ConstInt::Infer as it has been removed 2017-03-01 15:38:31 +01:00
Enrico Schmitz
887a3c184e Make tests compile for rustc 1.17.0-nightly (be760566c 2017-02-28) 2017-03-01 14:33:17 +01:00
Tristian Celestin
75e28610a7 Merged drop_forget_ref.rs with drop_forget_copy.rs.
Moved constant message strings out of declare_lint! macros.
2017-02-26 21:57:47 -05:00
Tristian Celestin
aa037d1ef0 Merge branch 'master' into 1537-drop_copy 2017-02-25 23:11:21 -05:00
Tristian Celestin
b8defc6cc4 Warn on calls to std::mem::drop or std::mem::forget with a Copy type 2017-02-25 23:05:37 -05:00
sinkuu
5906639af5 Enable len_zero for slices 2017-02-25 12:26:33 +09:00
Oliver Schneider
19929790aa Merge pull request #1561 from Manishearth/zero_ptr
New zero_ptr lint.
2017-02-22 13:34:28 +01:00
sinkuu
1e26c44010 Suggest assert_ne for assert!(x != y) 2017-02-22 16:47:18 +09:00
Oliver Schneider
a7c049df28 Merge pull request #1564 from Manishearth/cleanup
Cleanup test suite
2017-02-21 15:30:39 +01:00
Oliver Schneider
d032b8967c Merge pull request #1491 from Manishearth/into_iter_on_ref
fix explicit_into_iter_loop on references
2017-02-21 14:55:52 +01:00
Oliver Schneider
27aa309b3d Merge pull request #1556 from sinkuu/take_by_value
Lint needless take-by-value
2017-02-21 13:07:25 +01:00
Oliver Schneider
25e230419c Merge system independent ui-tests back into tests/ui 2017-02-21 12:19:55 +01:00
Oliver Schneider
f10128369b fix ui-posix test paths 2017-02-21 12:16:57 +01:00
Oliver Schneider
f2ff5e2133 Update ui test output 2017-02-21 12:13:44 +01:00
Oliver Schneider
0996f8bb00 Fix more wrong windows ui test paths 2017-02-21 12:12:45 +01:00
Oliver Schneider
ff655a7dbc Ui windows test paths are wrong 2017-02-21 12:12:08 +01:00
Oliver Schneider
21a0b16aee
adjust messages in tests 2017-02-21 12:04:29 +01:00
Oliver Schneider
0bea3e76d4
fix explicit_into_iter_loop on references
fixes #1398
2017-02-21 12:01:41 +01:00
Oliver Schneider
89d98a8732 Simplify calling update-all-references.sh 2017-02-21 11:18:05 +01:00
Oliver Schneider
3af04c7816 Cleanup test suite 2017-02-21 11:11:33 +01:00
sinkuu
cb86c57c5f Integrate suggestion spans 2017-02-21 19:03:50 +09:00
sinkuu
3516d45d7c Use multispan_sugg 2017-02-21 18:44:31 +09:00
Oliver Schneider
55ea08102a Merge pull request #1543 from Manishearth/fix-windows-tests
fix windows tests
2017-02-21 10:34:49 +01:00
Oliver Schneider
f07f793fa8 Merge pull request #1544 from bood/master
Add lint for unnecessary casts (cast to same type)
2017-02-21 09:16:07 +01:00
Andre Bogus
2f7babba82 New zero_ptr lint.
This fixes #1047. I did not bother to add a full suggestion,
because replacing with `std::ptr::null()` may still lead to
inference failures.
2017-02-21 04:36:59 +01:00
sinkuu
627d24c80f Fix suggestion for let <pat> 2017-02-21 00:27:12 +09:00
sinkuu
f1b0b774e7 Support non-moving usages at match
This `match` is not moving the `String`:

```rust
fn foo(x: Option<String>) -> i32 {
    match x {
        Some(_) => 1,
        None => 2,
    }
}
```

With this change, it will be linted and suggested to add `*` to deref it.

```rust
fn foo(x: &Option<String>) -> i32 {
    match *x {
        Some(_) => 1,
        None => 2,
    }
}
```
2017-02-20 16:45:37 +09:00
sinkuu
0a6bc6031a Rename lint to needless_take_by_value
And fixes false-positives for generics and `match`
2017-02-20 16:02:48 +09:00
Phil Ellison
d6a4d2cb18 Fix typo 2017-02-19 15:39:40 +00:00
Phil Ellison
0396756098 Add test that adding allow attribute on impl block containing len silences len_without_is_empty. Add extra impl block to PubOne to check that this doesn't get flagged@ 2017-02-19 15:36:17 +00:00
Phil Ellison
2dd45b7317 Use span of impl/trait in len_without_is_empty error message, rather than the span of the len method 2017-02-19 15:14:30 +00:00
sinkuu
d81d961ba7 Lint needless take-by-value 2017-02-19 07:59:44 +09:00
Bood Qian
97d46232b4 Merge branch 'master' of github.com:Manishearth/rust-clippy 2017-02-18 11:12:13 +08:00
sinkuu
8cb2ec804d Support generic type 2017-02-18 10:14:25 +09:00
sinkuu
6bb426b0e3 Add should_assert_eq lint (fixes #641) 2017-02-18 10:13:56 +09:00
Andre Bogus
505eb53d29 New never loop lint
This lint detects loops that unconditionally break or return.

Closes #257
2017-02-17 04:53:14 +01:00
Ben Boeckel
84509ca48a typos: coma -> comma 2017-02-16 11:23:28 -05:00
Bood Qian
2f00ea3a07 Suppress lint for unsuffixed number casts 2017-02-16 22:55:41 +08:00
Bood Qian
afce85e96d Add lint for unnecessary casts (cast to same type) 2017-02-15 22:20:20 +08:00
Oliver Schneider
f158bec188 satisfy rustfmt 2017-02-15 08:36:44 +01:00
Andre Bogus
d904a01140 fix windows tests
Windows has a different error message than POSIX, so the ui tests fail for the clippy-config-fail tests.
This commit splits those tests up in target-os specific subdirectories and extends compile-test.rs to
run either of them based on the target os. Here's hope we'll get a green appveyor build.
2017-02-14 17:30:55 +01:00
Oliver Schneider
8b3ad61dd3 update ui tests 2017-02-13 11:57:14 +01:00
Oliver Schneider
2265babe6a
Merge remote-tracking branch 'origin/master' into clonedCollect 2017-02-13 11:40:02 +01:00
Oliver Schneider
637a4590f6
Merge remote-tracking branch 'origin/master' 2017-02-13 11:15:12 +01:00
Martin Carton
9a7597d5af Merge pull request #1528 from Manishearth/mut-from-ref
New `mut_from_ref` lint
2017-02-12 16:01:15 +01:00
Andre Bogus
21d226e7d2 fixed multi-span test 2017-02-12 15:10:25 +01:00
Andre Bogus
36b8554cf1 add notes for immutable inputs 2017-02-12 13:53:30 +01:00
f001
b3570db094 update via comments 2017-02-12 20:40:38 +08:00
f001
98aa0db0ac Add a lint for slice.iter().cloned().collect()
If one uses `slice.iter().cloned().collect()` to create a new `Vec`,
it should be `slice.to_owned()`.

Fix #1292
2017-02-12 17:03:09 +08:00
Bood Qian
64d2f8af8e Lint on panic! only 2017-02-11 21:42:42 +08:00
Bood Qian
a2d752807a Lint on Err(_) arm of a match 2017-02-11 14:57:50 +08:00
Owen Sanchez
2a8ce7c458 Update large_enum_variant test 2017-02-10 21:04:19 -07:00
Owen Sanchez
1938904fcd Change large_enum_variant to lint against size differences rather than size 2017-02-10 18:12:32 -07:00
Andre Bogus
673ee4800d fix test 2017-02-11 01:41:49 +01:00
Andre Bogus
bff4c30ac7 added test, fixed message & description, rustfmt 2017-02-11 00:32:12 +01:00
Andre Bogus
5650a599a8 New mut_from_ref lint
This fixes #1507.
2017-02-10 19:39:03 +01:00
Oliver Schneider
1f2c97a291 remove all //~ from tests 2017-02-08 14:58:07 +01:00
Oliver Schneider
fd1351f6e3 rustup and compile-fail -> ui test move 2017-02-07 21:05:30 +01:00
Martin Carton
4ee839857b Merge pull request #1506 from bood/master
Lint for possible missing comma in an array #1177
2017-02-07 18:56:38 +01:00
Owen Sanchez
7570af0557 Make tests pass 2017-02-04 22:59:39 -07:00
Owen Sanchez
49238ad1d2 Implement empty_enum lint and add a test 2017-02-04 21:52:44 -07:00
Oliver Schneider
d198b99472 fix false negatives introduced in the rustup 2017-02-04 16:59:06 +01:00
Bood Qian
cb83a299fa Add test cases for possible missing comma lint 2017-02-04 20:02:53 +08:00
Bood Qian
33577ec3f7 Lint for possible missing comma in an array #1177 2017-02-03 19:10:30 +08:00
Martin Carton
b1be0d6457 Merge pull request #1492 from Manishearth/largeEnumVariant
large_enum_variants lint suggests to box variants above a configurable limit
2017-01-31 19:12:43 +01:00
Oliver Schneider
12eeffdf93 place the error checks on the correct lines 2017-01-31 16:00:28 +01:00
Oliver Schneider
19f119caec fix println message in tests 2017-01-31 11:19:49 +01:00
Oliver Schneider
9bda699c80 improve messages and add suggestions 2017-01-31 08:36:39 +01:00
Oliver Schneider
d9ec55e695 address nits 2017-01-31 08:08:54 +01:00
Oliver Schneider
82dd50d0e2 large_enum_variants lint suggests to box variants above a configurable limit 2017-01-30 13:17:56 +01:00
Oliver Schneider
aebdf74e16 correctly check exclusive range patterns for overlap 2017-01-30 12:30:16 +01:00
Pascal Hertleif
2357dfe8ee Remove useless part of test 2017-01-28 14:17:47 +01:00
Pascal Hertleif
6760b35e57 Increase suggestion tests' context 2017-01-28 14:12:35 +01:00
Pascal Hertleif
8cbf548f7e Add suggestions to EXPLICIT_[INTO_]ITER_LOOP
Also reduces the highlighted span to the expr containing the
`.[into_]iter()` call (so the suggestion is probably applicable by
rustfix.)

Fixes #1484
2017-01-28 14:02:49 +01:00
Oliver Schneider
4a70a46d2d
run rustfmt 2017-01-26 11:31:26 +01:00
Oliver Schneider
26e8558d8a
remove rustc-serialize dependency and factor util::cargo out into a crate 2017-01-26 11:31:26 +01:00
mcarton
b784f0d736
Use span_suggestion in the precedence lint 2017-01-22 15:00:10 +01:00
Oliver Schneider
7b836dd27c
become rustfmt resistant 2017-01-17 19:27:52 +01:00
Oliver Schneider
25100a8299
fix build 2017-01-17 19:23:32 +01:00
Andre Bogus
27d47f970a rustfmt tests to fix build 2017-01-17 16:12:09 +01:00
Oliver Schneider
219da6d736 Merge pull request #1444 from Manishearth/or_else_method
Extend or_fun_call to also cover methods
2017-01-15 14:38:51 +01:00
sinkuu
cdfe002ee1 Use closure body span (fixes #1405) 2017-01-15 13:16:02 +09:00
Andre Bogus
b764b2a7aa extend or_fun_call lint to cover methods 2017-01-15 00:31:20 +01:00
Andre Bogus
2fdb6e4d1a deprecate extend_from_slice lint 2017-01-14 14:39:41 +01:00
Oliver Schneider
d944d7df9a
rustup to 2017-01-12 2017-01-13 17:04:56 +01:00
Oliver Schneider
3cc5596466 Merge pull request #1433 from sinkuu/ref
Don't lint needless_borrow when matching `&&mut` by `&ref`
2017-01-10 17:29:19 +01:00
sinkuu
c9091b71a1 Don't lint when matching &&mut by &ref (Fix #1432) 2017-01-11 00:42:58 +09:00
Oliver Schneider
e066997046
FOR_KV_MAP can now lint on mutable maps due to values_mut() 2017-01-10 08:33:20 +01:00
sinkuu
a2bcce9dbf Move is_try to util
Removed unnecessary condition

Also changed lint span of `try` from surrounded expression to entire `try`
invocation. It turned out that compiletest misses errors for macro invocations.
2017-01-07 23:52:48 +09:00
sinkuu
ce6e037ac5 Implement unused_io_amount lint 2017-01-07 22:23:33 +09:00
Theemathas Chirananthavat
3050d90930 Add forget_ref tests.
Also rename drop_ref.rs to drop_forget_ref.rs in tests/compile-fail.
2017-01-05 17:41:01 -08:00
Theemathas Chirananthavat
920a2b7468 The drop_ref test does not require implementing the Drop trait. 2017-01-05 17:41:01 -08:00
Oliver Schneider
f145fc44f8 Merge pull request #1414 from samueltardieu/no-short-circuit-if
Add a new "short_circuit_statement" lint (fixes #1194)
2017-01-05 10:41:14 +01:00
Manish Goregaokar
9a301fd508 Bump to 0.0.106; Fix false positive in wrong_self_convention (fix #1420) 2017-01-04 18:05:04 -08:00
Samuel Tardieu
82b2f5663f Add a new "short_circuit_statement" lint (fixes #1194) 2016-12-31 01:17:39 +01:00
Manish Goregaokar
b8b54eb0d8 Fix suggestion span on new_without_default (fixes #1407) 2016-12-29 11:19:32 -08:00
Theemathas Chirananthavat
c0c20145d1 Fix compile-fail tests by allowing double_parens. 2016-12-28 12:04:46 -08:00
Theemathas Chirananthavat
e7352877c5 Add test for double_parens lint. 2016-12-28 11:21:53 -08:00
Martin Carton
96d2483b09 Merge pull request #1400 from oli-obk/needed_needless_lifetime
support impl trait for needless lifetimes
2016-12-25 18:24:39 +01:00
Martin Carton
7c480d0db7 Merge pull request #1394 from Manishearth/absurd_extreme_comparisons_false_positive
fix absurd extreme comparisons false positive
2016-12-25 17:47:42 +01:00
Oliver Schneider
93333f0d7b
support impl trait for needless lifetimes 2016-12-22 15:51:59 +01:00
Oliver Schneider
2f219b827e
fix an ice related to associated types
fixes #1341
2016-12-22 14:16:07 +01:00
Oliver Schneider
0b10a41ef3
fix absurd extreme comparisons false positive
fixes #1387
2016-12-21 16:49:53 +01:00
Oliver Schneider
7a1d85f1de Merge branch 'master' into allow_deprecated 2016-12-21 15:47:12 +01:00
Oliver Schneider
00a3bfb8eb
Don’t warn for types used in trait implementation 2016-12-21 15:42:20 +01:00
Oliver Schneider
90fc9c389f
split pub_enum_variant_names to new lint 2016-12-21 13:30:57 +01:00
Oliver Schneider
009c6d95d7
manually fix the overlong lines 2016-12-21 12:30:41 +01:00
Oliver Schneider
0a7ae5fec8
run rustfmt 2016-12-20 10:20:41 +01:00
Manish Goregaokar
d61c7fc747 Merge pull request #1355 from philipturnbull/deref-addrof
Lint usage of `*&` and `*&mut`
2016-12-19 03:35:45 -08:00
Oliver Schneider
5aded99033
don't lint on x = x + y inside an AddAssign impl
fixes #1302
2016-12-19 11:13:07 +01:00
Oliver Schneider
2e63a5648a uncomment code that was commented out for testing 2016-12-04 19:31:46 +01:00
mcarton
65ff2df7e7
Fix copy lints 2016-12-02 22:23:24 +01:00
mcarton
fe15880beb Revert "down to for-loops not comparing as equal"
This reverts commit cf1fa94be1.
2016-12-02 20:54:05 +01:00
mcarton
42fb11f887
Don't set RUST_BACKTRACE for tests
It is slow but it can be useful and can be set/unset explicitly before
running tests if needed. There is no backtrace by default anyway.
2016-12-02 20:33:37 +01:00
Oliver Schneider
cf1fa94be1 down to for-loops not comparing as equal 2016-12-02 19:19:52 +01:00
Oliver Schneider
16aab71688
enum glob use and copies left 2016-12-02 17:38:31 +01:00
Wim Looman
919feaaec5 Allow allow(deprecated) attribute on use items
fixes #1372
2016-12-01 22:36:35 +01:00
Phil Turnbull
0ee6128e27 Convert DEREF_ADDROF to EarlyLintPass 2016-11-25 10:33:21 -05:00
Phil Turnbull
8d04038c56 Make deref_addrof suggestions stricter
SUGGESTION matches a substring so 'aref' in the testcases can match
'let b = *aref', 'let b = **aref', 'let b = *&aref' etc, which are
all wrong.
2016-11-25 10:33:01 -05:00
mcarton
c35f82b823
Rustup to *rustc 1.15.0-nightly (7b3eeea22 2016-11-21)* 2016-11-23 21:31:55 +01:00
Phil Turnbull
a9f5b90f0f Lint usage of *& and *&mut
fixes #1316
2016-11-22 21:06:20 -05:00
Martin Carton
530083c3b9 Merge pull request #1349 from philipturnbull/extend-chars
Lint `.extend(s.chars())` (closes #792)
2016-11-22 18:21:30 +01:00
Phil Turnbull
e9f3911899 Suggest &s instead of s.as_str() 2016-11-20 11:19:36 -05:00
sinkuu
5d40965b50 Fix #1346 2016-11-20 10:15:40 +09:00
sinkuu
1973e94550 Allow explicit returns with cfg attributes 2016-11-20 10:02:41 +09:00
Phil Turnbull
73a73638c0 Add lint for string.extend(string.chars())
fixes #792
2016-11-19 14:55:47 -05:00
Phil Turnbull
fa78b09fa7 Add lint for string.extend("str".chars())
fixes #792
2016-11-19 14:55:02 -05:00
mcarton
7140eac484 Cleanup 2016-11-18 13:40:44 +01:00
mcarton
945c027768
Handle closure with single expression blocks 2016-11-17 19:44:18 +01:00
mcarton
19c5f5394b
Rustup to rustc 1.15.0-nightly (0ed951993 2016-11-14) 2016-11-16 23:05:26 +01:00
Oliver 'ker' Schneider
cfae1e9fda fix ice in len_zero lint when type has no inherent impls at all
fixes #1336
2016-11-10 17:06:39 +01:00
Oliver Schneider
a260e65ead Merge pull request #1312 from devonhollowood/get-unwrap
Implement `get_unwrap` lint
2016-11-09 09:49:20 +01:00
Oliver Schneider
a56af73fd8
mark cyclomatic complexity attribute as used
fixes #1315
2016-11-02 10:29:57 +01:00
Devon Hollowood
6a14dc7fd4 Remove false positives from get_unwrap lint
HashMap and BTreeMap don't implement `IndexMut`, so we shouldn't lint
for use of `get_mut().unwrap()` for those types.
2016-11-01 17:48:32 -07:00
Devon Hollowood
4e0d182d1d Clean up get_unwrap code 2016-11-01 17:48:18 -07:00
Devon Hollowood
1187d333ec Add tests for get_unwrap lint 2016-11-01 01:08:47 -07:00
Sebastian Ullrich
8664d03ec6 implement 'Re-implementing PartialEq::ne' lint
closes #86
2016-10-30 15:00:59 -04:00
d-dorazio
d213040381 Add lint for redundant pattern matching in iflet for Result/Option 2016-10-30 15:43:46 +01:00
Devon Hollowood
3a0d342a33 Fix false positive for wrong_self_convention 2016-10-27 01:11:34 -07:00
mcarton
984e15a0c0
Forbid default warnings in dogfood 2016-10-22 16:16:55 +02:00
d-dorazio
62831c6e29 Suggest nth(X) instead of skip(X).next() 2016-10-14 13:38:00 +02:00
mcarton
8d0431fd9a
Test for #1275
Close #1275.
2016-10-12 12:00:26 +02:00
d-dorazio
a4d4a372e0 Avoid redundant multiple pattern suggested when one pattern is _ 2016-10-08 16:29:19 +02:00
mcarton
47c2271497
Fix FP with print_with_newline and final arguments 2016-10-06 22:30:03 +02:00
Martin Carton
e851bc7404 Merge pull request #1257 from KitFreddura/master
If let some lint
2016-10-04 23:00:05 +02:00
Manish Goregaokar
7b94ef19bd aux -> auxiliary (breaks Windows) 2016-10-04 09:15:03 +05:30
Manish Goregaokar
a4198c1108 Merge pull request #1255 from Manishearth/cov
Improve test coverage
2016-10-03 22:15:23 +05:30
mcarton
6800111c8e
Move all *.toml test files to tests/aux 2016-10-03 17:49:41 +02:00
Kit Freddura
72a653d8d4 readded files 2016-10-02 13:49:29 -07:00
mcarton
7b92fe0387
Test configuration file typing errors 2016-10-02 14:46:46 +02:00
mcarton
019e310861
Add more tests for bad configuration file 2016-10-02 14:43:09 +02:00
mcarton
f6f4af6adc
Add missing tests for ... and array indexing 2016-10-02 14:42:55 +02:00
mcarton
e50cfa7e77
Add a test for a shadow corner case 2016-10-02 02:38:54 +02:00
mcarton
9a3f53dee6
Partially hash let declaration in SpanlessHash
The hash never needs to be good but before it was simply doing nothing
for these.
2016-10-02 02:17:04 +02:00
mcarton
6302e41ccb
Improve test coverage of hir comparison 2016-10-01 22:27:25 +02:00
Martin Carton
8babb2d409 Merge pull request #1250 from elliottneilclark/explicit_into_iter
Add a lint to warn about un-necessary .into_iter()
2016-10-01 15:01:43 +02:00
Oliver Schneider
9c5d3f3b85 correctly traverse match expressions for diverging_sub_expr 2016-10-01 14:41:20 +02:00
Elliott Clark
5fa004313b Add a lint to warn about un-necessary .into_iter()
This should close #1094.
2016-09-30 17:42:43 -07:00
mcarton
84269478b0
chmod -x tests/compile-fail/print_with_newline.rs 2016-10-01 00:50:40 +02:00
Martin Carton
fe27ac5fd2 Merge pull request #1237 from Manishearth/rustup
Rustup to *rustc 1.13.0-nightly (d0623cf7b 2016-09-26)* and bump to 0.0.91
2016-09-28 01:15:33 +02:00
mcarton
4f3920307a
Rustup to *rustc 1.13.0-nightly (d0623cf7b 2016-09-26)* 2016-09-28 01:09:11 +02:00
mcarton
056b0c1cf2
Remove redundant labels in tests 2016-09-23 19:51:47 +02:00
Manish Goregaokar
fc9f2b99c7 Merge pull request #1235 from Manishearth/transmute_ptr_to_ref-suggs
Fix wrong suggestion in `TRANSMUTE_PTR_TO_REF` with lts
2016-09-19 22:02:47 +05:30
mcarton
f74dcaac0c
Fix wrong suggestion in TRANSMUTE_PTR_TO_REF with lts 2016-09-19 17:59:12 +02:00
Oliver Schneider
c89c5d21c1
Merge remote-tracking branch 'origin/master' into examples 2016-09-19 15:38:38 +02:00
mcarton
c8986b4676
Fix FP with WHILE_LET_ON_ITERATOR and refutable pats 2016-09-16 15:50:35 +02:00
Martin Carton
dc84759ac5 Merge pull request #1224 from oli-obk/divergence
lint diverging expressions that are sub-expressions of others
2016-09-13 15:58:31 +02:00
Oliver Schneider
9427a4ae80
also test match statements, return, continue and break 2016-09-13 14:52:21 +02:00
Oliver Schneider
e6bfe4b514
also lint diverging methods 2016-09-13 12:41:37 +02:00
Oliver Schneider
a2257280ec
don't lint expressions referencing ! objects, just expressions creating them 2016-09-13 12:41:20 +02:00
Oliver Schneider
40ce3a8f1c
add tests for stutter lints 2016-09-13 10:20:10 +02:00
Oliver Schneider
12a82b2007
also lint private modules for module_inception, as that is the main issue 2016-09-13 10:19:55 +02:00
Oliver Schneider
f469860dc2
lint diverging expressions that are sub-expressions of others 2016-09-12 14:24:11 +02:00
Oliver Schneider
03fa974855
Let the submodule #[allow] in module_inception 2016-09-12 10:30:42 +02:00
mcarton
8216036193
Add test for #[allow(module_inception)] on the inner module 2016-09-12 10:11:48 +02:00
mcarton
b08c7aa553
Remove EOL space 2016-09-09 20:24:15 +02:00
mcarton
b82f43f38e
Revert "Remove all union stuffs"
This reverts commit 888c34ad70.
This rustups to rustc 1.13.0-nightly (70598e04f 2016-09-03).
2016-09-04 17:45:36 +02:00
mcarton
b2de244cfd
Restrict len_without_is_empty to exported items 2016-09-02 15:30:06 +02:00
kennytm
5f09020e90 Added a lint_without_lint_pass lint.
Four lints were missing from LintPass, making them unavailable unless the
`clippy` lint group is explicitly enabled:

* `for_loop_over_result`
* `for_loop_over_option`
* `match_overlapping_arm`
* `filter_next`
2016-09-01 15:07:37 +08:00
mcarton
888c34ad70
Remove all union stuffs
The rustc's PR wasn't merged. Hopefully this commit can simply be reverted when it's time.
2016-08-31 18:22:36 +02:00
mcarton
01424f5622
Support unions here and there 2016-08-31 18:22:36 +02:00
mcarton
ee3f3bf260
Remove temporary fix now unneeded 2016-08-31 18:22:36 +02:00
mcarton
d87f137254
Add a builtin_type_shadow lint 2016-08-28 19:56:18 +02:00
mcarton
e922fa80ce
Fix FP in ZERO_PREFIXED_LITERAL and 0b/Oo 2016-08-28 18:00:09 +02:00
mcarton
36d8ca04a1
Add a MISSING_DOCS_IN_PRIVATE_ITEMS lint 2016-08-23 18:28:39 +02:00
mcarton
507b626b36 Add zero_prefixed_literal lint 2016-08-23 18:15:12 +02:00
llogiq
cf2b0c8dd6 New cmp_null lint (fixes #1184) (#1186)
* new cmp_null lint (fixes #1184)

* adressed comments (still fails)

* fixed tests, dogfood, ran update_lints
2016-08-22 18:29:29 +02:00
Oliver Schneider
6dd003ac39
add regression test 2016-08-19 17:31:14 +02:00
Oliver Schneider
7b717d3152
fallout 2016-08-17 18:35:25 +02:00
Oliver Schneider
3ab6ad59c4
disallow lint attributes on use and extern crate items 2016-08-17 11:36:04 +02:00
Georg Brandl
ffad9a8c8c Lint print!("...\n") (closes #455) 2016-08-16 20:52:48 +02:00
Oliver Schneider
b6f320a495
address nits and improve docs 2016-08-16 14:36:48 +02:00
Oliver Schneider
7ee4a9a659
lint modules that have the same name as their parent module 2016-08-16 14:29:21 +02:00
scurest
b0a96def09 Add lint for reads and writes that depend on evaluation order 2016-08-11 06:01:40 -05:00
llogiq
ce3be22021 Merge pull request #1151 from oli-obk/clone_ref
add suggestions to clone_on_copy
2016-08-09 06:30:25 +02:00
llogiq
8ac99162ea Merge pull request #1152 from oli-obk/wrong_self_conv_fn_level
enable changing wrong_self_convention's lint level at the function level
2016-08-08 21:13:16 +02:00
Manish Goregaokar
4b8f6a0b0f Merge pull request #1154 from oli-obk/no_dogfood_for_travis
don't run clippy on itself twice in travis
2016-08-08 21:48:29 +05:30
Oliver Schneider
dec3250ad6
don't run clippy on itself twice in travis 2016-08-08 17:33:41 +02:00
Oliver Schneider
331afc3246
extern fns often need to adhere to a specific api -> don't suggest api-changes 2016-08-08 17:21:47 +02:00
Oliver Schneider
49f276ec6f
enable changing wrong_self_convention's lint level at the function level 2016-08-08 17:09:36 +02:00
Oliver Schneider
7e67f447ce
add suggestions to clone_on_copy
also:

* don't report clone_on_copy when reporting clone_on_double_ref
* don't suggest `((x))`
2016-08-08 16:43:45 +02:00
Manish Goregaokar
74c7880597 Merge pull request #1145 from birkenfeld/issue-703-2
Lint literal suffixes not separated by underscores (idea also from #703)
2016-08-07 09:57:16 +05:30
Georg Brandl
fa0df69a97 Add a configurable threshold for enum variants before name lints trigger (fixes #1138) 2016-08-06 20:59:27 +02:00
Georg Brandl
2f8247ada5 Lint literal suffixes not separated by underscores (see #703) 2016-08-05 18:50:23 +02:00
Georg Brandl
ab58331f22 Lint inconsistent casing in hex literals (closes #703) 2016-08-05 18:30:49 +02:00
Oliver Schneider
81c5757f44
lint on by ref patterns for references 2016-08-01 16:59:14 +02:00
Oliver Schneider
100d381d2b
lint a += a + b (possible mis-refactoring of a = a + b) 2016-07-20 15:29:24 +02:00
llogiq
a371558bdb Merge pull request #1093 from oli-obk/serde_specific_lint
lint on implementing `visit_string` without also implementing `visit_str`
2016-07-18 11:53:28 +02:00
Oliver Schneider
02c46f057f
add an internal lint that catches misordered paths 2016-07-18 11:19:33 +02:00
Manish Goregaokar
b8c5e5a89c
Fix position of mut in toplevel-ref-arg (fixes #1100, again) 2016-07-15 19:02:41 +05:30
Manish Goregaokar
60f354880f
Suggest mutability and fix type in toplevel-ref-arg 2016-07-15 17:52:34 +05:30
llogiq
b1becf41e4 Merge pull request #1099 from Manishearth/fix
Some small fixes
2016-07-14 21:32:45 +02:00
mcarton
ea665c38f1
Fix FP with USELESS_VEC and non-copy types 2016-07-14 19:31:17 +02:00
mcarton
c1eb5828fa
Fix suggestion spans for NEEDLESS_RETURN 2016-07-14 18:32:48 +02:00
Taylor Cramer
7450d842ea Fix different NaNs in if const expressions test 2016-07-13 10:02:28 -07:00
Taylor Cramer
61d1a9b030 Check for comparison of -0.0 and 0.0 in PartialOrd for Constant 2016-07-13 09:55:16 -07:00
Taylor Cramer
0c21a6b0c4 Add test for different NaNs 2016-07-13 09:35:31 -07:00
Taylor Cramer
8907cbc0b8 Added sign check on Constant f64 PartialEq implementation 2016-07-13 00:43:33 -07:00
Oliver Schneider
319c66a2a4
lint on implementing visit_string without also implementing visit_str 2016-07-12 17:36:11 +02:00
Manish Goregaokar
c1421c6e82
Don't warn when boxing large arrays 2016-07-12 18:49:34 +05:30
mcarton
b8b6b7fee6
Try to explain MATCH_SAME_ARMS better 2016-07-10 14:46:39 +02:00
mcarton
eb75d4ee62
Fix suggestions for NEW_WITHOUT_DEFAULT 2016-07-10 14:20:38 +02:00
mcarton
3a7402a6d2
Fix FP with for loops and shadowed loop variable 2016-07-10 14:05:57 +02:00
llogiq
ad1cd99054 Merge pull request #1060 from Manishearth/sugg
Improve suggestions
2016-07-10 00:06:30 +02:00
mcarton
56d3bc7008
Handle /** and ~~~ in DOC_MARKDOWN 2016-07-08 18:24:47 +02:00
mcarton
c5e91e70d0
Use sugg::Sugg in transmute links 2016-07-04 02:22:57 +02:00
mcarton
9b79b1022c
Fix suggestions for needless_bool 2016-07-04 01:43:47 +02:00
mcarton
7778f314f2
Merge branch 'master' into sugg 2016-07-04 00:51:19 +02:00
mcarton
2f259b8cd3
Use span_suggestion in entry lints 2016-07-03 23:27:44 +02:00
mcarton
ffa840d4f2
Use utils::sugg in match related lints
Also don't build suggestion when unnecessary.
2016-07-03 23:27:37 +02:00
James Lucas
10b545e30b Check for constant expression in useless_vec lint 2016-07-03 12:12:43 -07:00
mcarton
0e3dcd1376
Improve NOT_UNSAFE_PTR_ARG_DEREF with functions 2016-07-03 13:29:04 +05:30
mcarton
7781f1d7c5 Add a new not_unsafe_ptr_arg_deref lint 2016-07-03 13:28:34 +05:30
mcarton
2a45a2ab6b
Use utils::sugg in FOR_KV_MAP 2016-07-01 20:55:45 +02:00
mcarton
f6c9490e65
Fix wrong suggestion with ... and for loops 2016-07-01 19:31:14 +02:00
mcarton
9bd7fa05e0
Improve NEEDLESS_RANGE_LOOP error reporting 2016-07-01 18:53:04 +02:00
mcarton
d6182b365c
Merge remote-tracking branch 'origin/rustup' into sugg 2016-07-01 17:48:57 +02:00
mcarton
55b78ae478
Rustup to ea0dc9297283daff6486807f43e190b4eb561412 II 2016-07-01 17:44:17 +02:00
mcarton
3c4af49662
Rustup to ea0dc9297283daff6486807f43e190b4eb561412 2016-07-01 17:44:17 +02:00
mcarton
ebf72cb67f
Use util::sugg in TRANSMUTE_PTR_TO_REF 2016-07-01 17:12:48 +02:00
mcarton
7023988020
Use utils::sugg in TOPLEVEL_REF_ARG 2016-07-01 17:12:48 +02:00
mcarton
7a1fc9fce5
Use utils::sugg in MATCH_BOOL 2016-07-01 17:12:48 +02:00
mcarton
66808c1e77
Use utils::sugg in COLLAPSIBLE_IF 2016-07-01 17:12:48 +02:00
mcarton
2e8edde6e9
Use utils::sugg in FLOAT_CMP 2016-07-01 17:12:48 +02:00
mcarton
8d58a928e5
Use utils::sugg in ASSIGN_OPS 2016-07-01 17:12:48 +02:00
mcarton
580ae5a879
Use span_suggestion in FLOAT_CMP 2016-07-01 17:12:48 +02:00
Andre Bogus
a12e8394d7 new lint: double_neg 2016-06-30 01:00:25 +02:00
mcarton
9e76bcee5d
Improve matches tests 2016-06-29 17:10:21 +02:00
mcarton
ea76ac5562
Make COLLAPSIBLE_IF consider if let 2016-06-29 17:09:39 +02:00
mcarton
7fa38f6787
Fix FP with mut_mut and for loops 2016-06-29 17:09:39 +02:00
Oliver Schneider
9ceb708727 Merge pull request #1053 from oli-obk/char_float_transmute
lint on unnecessary and plain wrong transmutes
2016-06-28 14:50:39 +02:00
Oliver Schneider
e06bc37477
lint on unnecessary and plain wrong transmutes 2016-06-28 14:08:08 +02:00
Manish Goregaokar
cdce78a4be
Add parentheses when necessary in transmute suggestion (fixes #1049) 2016-06-28 14:03:46 +05:30
Oliver Schneider
a469ee1061
lint transmuting references to pointers 2016-06-27 16:12:48 +02:00
Oliver Schneider
60cc87baba Merge pull request #1041 from oli-obk/procedural
don't depend on regex_macros anymore
2016-06-26 14:13:24 +02:00
Oliver 'ker' Schneider
2e86eb88f3 rename mini-macro to clippy-mini-macro-test 2016-06-26 13:26:30 +02:00
Oliver 'ker' Schneider
8c5e617c9a don't lint on comparing *const f32s 2016-06-25 18:59:37 +02:00
Oliver 'ker' Schneider
d57192d5c1 don't depend on regex_macros anymore 2016-06-25 18:12:29 +02:00
llogiq
f81d253c07 Merge pull request #995 from oli-obk/oh_the_horror
lint on `filter(x).map(y)`, `filter(x).flat_map(y)`, `filter_map(x).flat_map(y)`
2016-06-22 13:06:12 +02:00
Oliver Schneider
5ccbf3d437
unify the lints 2016-06-22 10:44:46 +02:00
Martin Carton
294aeaf4b3 Merge pull request #1012 from Manishearth/nohyg
Don't use identifier hygiene in HIR
2016-06-21 21:23:39 +02:00
Oliver Schneider
ac6e7b2957
fix tests 2016-06-21 14:46:02 +02:00
Oliver Schneider
eef439cb78
add tests 2016-06-21 13:48:56 +02:00
Oliver Schneider
44c30ca543
fix tests 2016-06-21 12:35:49 +02:00
Devon Hollowood
12bc90d457 Add tests for extend-iter-nth 2016-06-16 14:39:29 -07:00
llogiq
f3397afacb Merge pull request #994 from oli-obk/stuttter
Stuttter lint
2016-06-16 19:00:43 +02:00
Martin Carton
4e8c87ad08 Merge pull request #1021 from Manishearth/issue1017
Fix FP with `WHILE_LET_LOOP` and break expressions
2016-06-16 16:30:44 +02:00
mcarton
836554387a
Fix FP with WHILE_LET_LOOP and break expressions 2016-06-16 16:21:11 +02:00
Oliver Schneider
32894d503e
lint enum variants names that start or end with their enum's name 2016-06-16 12:17:15 +02:00
Devon Hollowood
74025be59d Make iter_nth work for Vecs too 2016-06-16 02:04:32 -07:00
Devon Hollowood
555e4555b1 Add tests for slice_iter_nth 2016-06-16 01:29:03 -07:00
mcarton
e6cbe970c8
Don't use identifier hygiene in HIR 2016-06-15 16:36:22 +02:00
mcarton
90453fd893
Run rustfmt
Only partially apply suggestions.
2016-06-10 00:08:14 +02:00
llogiq
e6832317fa Merge pull request #999 from Manishearth/whitelist
Some small fixes
2016-06-10 00:04:50 +02:00
mcarton
e9360f7675
Fix suggestions for REVERSE_RANGE_LOOP 2016-06-09 23:34:19 +02:00
mcarton
ce2b96abe9
Fix yet another FP in USELESS_LET_IF_SEQ
The block expression before the assignment must be `None`.
2016-06-09 23:33:38 +02:00
mcarton
c5affa2efc
Whitelist Nan in DOC_MARKDOWN 2016-06-09 23:33:28 +02:00
Carol (Nichols || Goulding)
8e1dc0481c Include consts in the approx_consts lint for easier copypasting
If you try to use `f64::PI`, it won't work-- you need to use
`f64::consts::PI`, so suggest that in the lint message.
2016-06-08 19:58:29 -04:00
mcarton
1f419a2986
Add missing suggestions and help message to tests 2016-06-07 18:33:24 +02:00
mcarton
dd3fd41a03
Use span_suggestion for WHILE_LET_ON_ITERATOR 2016-06-07 18:32:40 +02:00
mcarton
65c4e391ee Fix wrong tests and improve some other 2016-06-07 17:32:36 +02:00
mcarton
a7a6c0461d
Add environment variable to deactivate wiki links 2016-06-05 22:03:02 +02:00
mcarton
158183adf5
Fix false-positive in USELESS_LET_IF_SEQ 2016-06-05 21:46:48 +02:00
mcarton
9f70d04000 Fix wrong suggestion with MANUAL_SWAP and slices 2016-06-05 20:19:00 +02:00
llogiq
66c03f980e Merge pull request #962 from Manishearth/fix-doc
Fix DOC_MARKDOWN and multiline links and quotes
2016-06-04 09:24:39 +02:00
mcarton
5c2a10d703 Correctly check for variable use in useless_let_if_seq 2016-06-03 19:35:39 +02:00
Manish Goregaokar
bf4ce86e9e
Make new_without_default ignore const fns; fixes #977 2016-06-03 20:17:39 +05:30
Andre Bogus
49982036fc only lint new_without_default for public items
This fixes #953.
2016-06-01 23:35:14 +02:00
Andre Bogus
2811dd64ec added missing PatKind::Path + tests 2016-05-31 23:35:42 +02:00
Andre Bogus
1b112f96b8 added mcarton's test suggestion 2016-05-31 23:30:49 +02:00
Andre Bogus
ef5db37d9d additional error in copies test annotated 2016-05-31 23:30:49 +02:00
Oliver Schneider
80e81d351d
add version check to the unit tests 2016-05-30 12:47:04 +02:00
mcarton
42879bcdcb
Add a USELESS_LET_IF_SEQ lint 2016-05-29 12:19:12 +02:00
mcarton
a892a96eeb
Rustup to *1.10.0-nightly (7bddce693 2016-05-27)* 2016-05-28 16:35:38 +02:00
mcarton
97c9930a3f
Fix doc_markdown and multiline quotes and links 2016-05-28 03:22:55 +02:00
mcarton
ac0bb4126c Improve markdown parsing for the doc lint 2016-05-28 02:08:01 +02:00
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 useing 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
Andre Bogus
be66322886 workaround for failing test 2015-10-15 16:18:40 +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
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
Manish Goregaokar
567d5a7293 Improve cmp_owned suggestions (fixes #386) 2015-10-13 04:16:05 +05:30
Ravi Shankar
fb5fdb61fa whup the while_let_loop for ignoring expressions! 2015-10-12 19:12:59 +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
Manish Goregaokar
3e475e9588 Merge pull request #354 from Pyriphlegethon/master
Add "unnecessary mut passed" lint
2015-10-07 04:18:02 +05:30
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
Pyriphlegethon
390168cc0f Well, fix them again 2015-09-30 18:17:55 +02:00
Pyriphlegethon
c5ab8d62e3 Fix tests 2015-09-30 18:00:14 +02:00
Manish Goregaokar
f76f4d52c2 Fix rustup fallout: lifetimes false positives 2015-09-30 20:10:54 +05:30
Pyriphlegethon
52aee99f6d Add test for unnecessary mut passed lint 2015-09-30 13:28:23 +02:00
Ravi Shankar
185da55263 extending while_let to warn for more statements 2015-09-29 20:26:34 +05:30
Georg Brandl
e8f875813d all: remove trailing spaces 2015-09-28 07:11:03 +02:00
llogiq
4838e8a3b4 Merge pull request #344 from Manishearth/reflet
Handle let ref in toplevel_ref_arg as well
2015-09-22 09:18:45 +02:00
Manish Goregaokar
3609a2211a Handle let ref in toplevel_ref_arg as well 2015-09-22 12:46:51 +05:30
Georg Brandl
7cc291d02e generalize let_and_return for any block (closes #340) 2015-09-20 13:57:31 +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
llogiq
acc83c0b02 Merge pull request #336 from Manishearth/issue335
ref matches: false positive with only wildcard pattern match
2015-09-17 07:43:26 +02:00
Georg Brandl
e3ee87965e ref matches: false positive with only wildcard pattern match (fixes #335) 2015-09-17 07:25:08 +02:00
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
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
llogiq
5c5d103405 added fp test against negative .step_by(_) 2015-09-15 09:12:58 +02: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
llogiq
0e1bc74683 additional macro check + more tests 2015-09-10 08:51:14 +02: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
Andre Bogus
b76ad366ab fixed bad_bit_mask false positive 2015-09-06 16:09:35 +02: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
llogiq
79bf820170 added test against const lookup 2015-09-05 16:24:41 +02:00
llogiq
cd91110ec0 new lint: min_max 2015-09-05 12:46:34 +02:00
Manish Goregaokar
fb148a50b2 Add false positive checks to unicode test 2015-09-04 16:27:53 +05:30
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
Manish Goregaokar
73c34e12b3 Only handle ranges starting with 0 for needless_range_loop (fixes #279) 2015-09-02 16:11:54 +05:30
llogiq
0c7f05dd76 check item name for eq, fixes #268 2015-09-02 10:30:11 +02:00
llogiq
0fb7d1d2d9 reporting improvements 2015-09-02 08:19:47 +02:00
Georg Brandl
5264196538 methods: try to allow value self when type is Copy (fixes #273) 2015-09-01 21:08:49 +02:00
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
e33bef685e lifetimes lint: walk type bounds as well as types (fixes #253, again) 2015-08-31 11:26:41 +02:00
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
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
Georg Brandl
6461fb3308 lifetimes lint: take "where" clauses into account (fixes #253)
If a where clause is present and has lifetimes mentioned, just bail out.
2015-08-30 09:58:26 +02:00
Manish Goregaokar
193e71be61 Merge branch 'pr-228'
Conflicts:
	README.md
	src/methods.rs
2015-08-27 11:09:40 +05:30
Georg Brandl
bb552dc96f eta_reduction: fix false positive for unsafe fns (fixes #243) 2015-08-26 17:09:51 +02:00
llogiq
5e341715cd Merge pull request #240 from Manishearth/shadow_scope
correct scoping for shadow lints
2015-08-25 23:56:57 +02:00
llogiq
51a211503d correct scoping for shadow lints 2015-08-25 23:48:22 +02:00
Manish Goregaokar
c9b849bdc8 Merge pull request #237 from birkenfeld/iter_fix
loops: use a whitelist for the "x.iter() -> &x" lint (fixes #236)
2015-08-26 03:16:49 +05:30
Manish Goregaokar
6df102cdab Merge pull request #238 from birkenfeld/to_string_fix
methods: suggest correct replacement for `to_string()` (fixes #232)
2015-08-26 02:43:19 +05:30
llogiq
56cdd58ad2 Merge branch 'master' of https://github.com/Manishearth/rust-clippy into shadow 2015-08-25 20:09:50 +02:00
Georg Brandl
6fa34cca29 methods: suggest correct replacement for to_string() (fixes #232) 2015-08-25 18:39:21 +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
llogiq
5225feceaa shadowing detection 2015-08-25 13:40:26 +02:00
Georg Brandl
64cd1fc6ba eq_op: cut back to expressions that are guaranteed side effect free
fixes #229
2015-08-25 12:34:37 +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
R.Chavignat
807dab943b Updated test case for cast lints.
Also improved readability and reworded the messages.
2015-08-22 22:06:58 +02:00
Georg Brandl
7580da306e matches: special message for this case
match &e { &Pat1 => {}, &Pat2 => {}, ... }

(inspired by dogfood fixes)
2015-08-22 14:34:39 +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
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
f1255d5f5d Casts : work in progress handling *size separately 2015-08-22 02:46:22 +02:00
Georg Brandl
707e95f2e5 types: use middle::ty types instead of ast types
This gets rid of the match_ty_unwrap function.
2015-08-21 19:21:19 +02:00
Georg Brandl
b2df15d65a ptr_arg improvements (fixes #214)
* do not trigger on mutable references
* use "real" type from ty, not AST type
2015-08-21 19:21:18 +02:00
llogiq
6ffe1ed337 Merge pull request #212 from Manishearth/eq_op_const
Eq op const
2015-08-21 12:30:53 +02:00
llogiq
a22b3cdcee const folding for eq_op 2015-08-21 12:26:03 +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
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
llogiq
150840667e Merge pull request #204 from Manishearth/bit-mask
Extend and correct the ineffective_bit_mask check
2015-08-19 13:25:43 +02:00
llogiq
973d5e5c6b Mul and Div for integers 2015-08-19 11:58:59 +02:00
llogiq
98d24b5b56 fixed #203 and #197 2015-08-19 09:39:03 +02:00
Georg Brandl
8f4499f3ae new lint: comparing unit types (fixes #201) 2015-08-19 08:11:00 +02:00
Georg Brandl
7f52239cab consts: convert to using a struct with state
Struct has the context reference (as an Option) and the
needed_resolution flag.
2015-08-17 19:58:21 +02:00
llogiq
a2ee637be6 added test and fixed negativity check in Partial{Eq, Ord} impl 2015-08-17 16:24:57 +02:00
llogiq
9f134f8e95 added PartialEq/PartialOrd to ConstantVariant, used to implement comparing binops 2015-08-17 13:18:14 +02:00
llogiq
0e67c0134f make float_cmp check for zero 2015-08-17 12:08:45 +02:00
llogiq
e354fdc3e8 added regression test for #189 2015-08-17 12:08:45 +02:00
llogiq
fb715ce45d fix 189, fixed a few warnings, ==/!= for consts, refactored consts test 2015-08-17 12:08:45 +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
759b45a46d made is_negative(..) public (+doctest), fixed identity_op and precedence 2015-08-16 23:09:56 +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
llogiq
e1438e7010 copied over cmp_owned fix from master 2015-08-16 16:13:44 +02:00
llogiq
03c7d7074d With working test now 2015-08-16 15:56:09 +02:00
Manish Goregaokar
164907ece2 restrict toplevel_ref_arg to only functions (fixes #170) 2015-08-16 17:24:03 +05:30
Manish Goregaokar
f494f14aa6 Merge pull request #177 from birkenfeld/if_let_mini_fix
misc: fix check for unit body in "match -> if let" lint (fixes #172)
2015-08-15 14:12:34 +05:30
Georg Brandl
542bf8d50e misc: fix check for unit body in "match -> if let" lint (fixes #172) 2015-08-15 09:56:15 +02:00
Georg Brandl
b299433de3 lifetimes: fix case with one unnamed and one static ref (fixes #171) 2015-08-15 09:36:07 +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
llogiq
5d99ebec72 fixed false positives (at the cost of some false negatives) 2015-08-14 14:37:12 +02:00
llogiq
ffda91a8c7 removed String::from_str(..) to fix build with 1.4.0-nightly/2015-08-14 2015-08-14 14:26:57 +02:00
llogiq
dece5a6cb5 added empty line test 2015-08-13 23:18:34 +05:30
llogiq
f4b5d21533 added a few unit tests to trim_multiline 2015-08-13 23:18:34 +05:30
Manish Goregaokar
847070e19d Merge pull request #151 from birkenfeld/needless_bool_msg
spelling fix, rework needless_bool with snippet (fixes #150)
2015-08-13 23:17:18 +05:30
Manish Goregaokar
3cf5c36296 Address review comments, move to travis 2015-08-13 21:45:50 +05:30
Georg Brandl
49e51fe65a lifetimes: try to fix w.r.t. lifetimes from parent scopes (fixes #162) 2015-08-13 21:45:42 +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
8a98736f51 spelling fix, rework needless_bool with snippet (fixes #150) 2015-08-13 15:31:16 +02:00
Andre Bogus
f67175b4cd fixed error messages in compile-fail test 2015-08-13 11:38: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
Manish Goregaokar
8dfa02938d Merge branch 'pr-149' 2015-08-13 13:00:29 +05:30
Manish Goregaokar
510ea0c5e5 Merge branch 'pr-140'
Conflicts:
	src/lib.rs
2015-08-13 12:52:14 +05:30
Georg Brandl
7aee04878f tests: use fragment of lint text for error checking
(Did not touch strings.rs, which is fixed by @llogiq's PR)
2015-08-13 08:12:07 +02:00
Georg Brandl
5952a29543 lifetimes test: use explicit message prefix 2015-08-13 07:51:24 +02:00
Georg Brandl
2f7693094f lifetimes lint: include support for lifetimes as generic params 2015-08-13 06:43:25 +02:00
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
e8fed074cf new lint: warn if let-binding has unit value (fixes #74) 2015-08-12 13:21:07 +02:00
Georg Brandl
b831bd1d1d len_zero: display full suggested expr in message 2015-08-12 10:53:14 +02:00
Georg Brandl
bcd95aec1c all: make style of lint messages consistent
* start first sentence lowercased
* use backticks to delimit code snippets
* use "this is wrong. Consider doing X." consistently
2015-08-12 10:47:09 +02:00
Georg Brandl
f6dc48fe3a new lint for "let x = EXPR; x" at the end of functions (fixes #104) 2015-08-11 22:25:47 +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
6bc69fa342 Merge pull request #127 from birkenfeld/better-helptext-if-let
better help text for "match -> if let" lint
2015-08-12 00:44:51 +05:30
Georg Brandl
e318328d63 all: whitespace cleanup
* 4-space indentation
* no trailing whitespace
* no tabs
2015-08-11 20:22:50 +02:00
Manish Goregaokar
2cb26126d3 Merge branch 'pr-78'
Conflicts:
	src/lib.rs
2015-08-11 23:28:06 +05:30
Georg Brandl
cab9905705 better help text for "match -> if let" lint
Implements the suggestion from #87.

Changes span_help_and_lint(), which is only used for this lint,
to use fileline_help() instead of span_help() to avoid printing
the span twice.

Also adds complete suggested new code. I had to distinguish
between blocks, which need no additionals braces, and other exprs.
2015-08-11 19:26:51 +02:00
Georg Brandl
0ff476b529 new lint for unneeded return stmts 2015-08-11 19:05:11 +02:00
llogiq
f0eb36c2af added parent method, also changed match-if-let note to help 2015-08-11 15:07:21 +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
0e5b62c8d8 also included String::from in cmp_owned and fixed deprecation in test 2015-06-11 16:53:23 +02:00
llogiq
23caf3cccc first unicode lint: zero_width_space 2015-06-11 11:35:00 +02:00
llogiq
1f74c4b359 removed false positives from inline_always (issue #84) 2015-06-07 12:03:56 +02:00
llogiq
8563ee60ec fixed issue #88 in bit_mask 2015-06-06 02:27:48 +02:00
llogiq
b44435ef28 extended compile-test.rs to actually observe TESTNAME environment variable and filter tests if available 2015-06-06 02:07:48 +02:00
llogiq
1ee2e4ffe8 Fixed block check, also added macro test to collapsible_if and inline_always 2015-06-01 15:09:17 +02:00
llogiq
7f5891184d merged upstream master 2015-06-01 13:55:55 +02:00
llogiq
cdca2c93c1 now the method lookup actually works (and I understand why! 😄), reduces unnecessary loops, and has a few comments 2015-06-01 12:49:36 +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
llogiq
21cd0c7e70 check for is_empty() method to get rid of false positives 2015-06-01 07:40:33 +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
cd2e621c60 made in_macro distinguish intra-crate and extra-crate macros, as the latter have no working source (note: may fail in the face of compiler plugins doing whatever they like with spans), also one more run-pass test 2015-05-26 13:52:40 +02: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
483a546e74 added messages to test error comments 2015-05-20 09:34:02 +02:00
llogiq
e8ca3c6eae new lints len_zero and len_without_is_empty 2015-05-20 08:52:19 +02:00
llogiq
1f8453ab73 mut_mut now more robust (thanks to Manishearth, see issue #9) 2015-05-18 10:41:15 +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
Manish Goregaokar
068e215728 move to compiletest on crates 2015-05-09 15:19:12 +05:30
llogiq
b24433f36d added test for issue #31 2015-05-08 06:01:41 +02:00
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
3a9bf24bb3 Added constant lookup (with help from Manish) to bad_bit_mask 2015-04-30 15:17:06 +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
a5c3102594 Use compiletest 2015-04-14 00:20:44 +05:30