Commit graph

1243 commits

Author SHA1 Message Date
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
d504290839 Add edge case with env! arg to test and known problems 2018-04-02 21:14:29 +01:00
Philipp Hansch
b1b0b36cc0
Document the author lint 2018-04-02 14:55:00 +02:00
Michael Wright
e91404bcc3 Fix clippy warning 2018-04-02 07:35:13 +02:00
Michael Wright
0fbcb30303 Merge branch 'master' into dogfood_target_dir 2018-04-02 07:28:10 +02:00
Michael Wright
fcabbeb251 Fix clippy warning
Fix too_many_arguments on `check_general_case` by allowing it. I can't
see a sensible way of grouping the parameters.
2018-04-02 07:04:43 +02:00
Michael Wright
89cb053146 Fix clippy warning
Fix cyclomatic_complexity warning on `check_expr` by allowing it. This
is preferable to increasing the threshold every time the method changes.
2018-04-02 07:04:39 +02:00
Michael Wright
57af95b6f5 Fix clippy warning
Fix `option_option` warning on `to_const_range` by taking the entire range
as an parameter instead of the start and end.
2018-04-02 07:04:25 +02:00
Michael Wright
6397131f8a Fix clippy warning
Allow `many_single_char_names` on `SpanlessHash::hash_expr`. Each
variable has a small scope and the method is readable.
2018-04-02 07:04:06 +02:00
Michael Recachinas
511aa654d7 Change declare_lint! to declare_clippy_lint! 2018-04-02 00:25:57 +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
Philipp Hansch
db1ec44616
Handle nested block comments 2018-03-30 12:36:50 +02:00
Philipp Hansch
bb4af196be
Move empty_line_after_outer_attribute to nursery
From the clippy side it's difficult to detect empty lines between
an attributes and the following item because empty lines and comments
are not part of the AST. The parsing currently works for basic cases
but is not perfect and can cause false positives.

Maybe libsyntax 2.0 will fix some of the problems around attributes but
comments will probably be never part of the AST so we would still have
to do some manual parsing.
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
Manish Goregaokar
83748f5e48 Rustup to rustc 1.26.0-nightly (ae544ee1c 2018-03-29) 2018-03-30 10:35:51 +02:00
Manish Goregaokar
9887b972d4
Merge pull request #2589 from rust-lang-nursery/rangearg
Move RangeArgument
2018-03-29 16:21:45 +02:00
Oliver Schneider
c1bbc173da
Address review comments 2018-03-29 13:41:53 +02:00
Manish Goregaokar
b75618206c Move RangeArgument 2018-03-29 13:13:27 +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
ef9fdbb8a9
Implementation + move one lint 2018-03-27 17:13:55 +02:00
Oliver Schneider
96d5af36f8
Version bump 2018-03-27 12:14:46 +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
9fb63d5fc4
Merge pull request #2574 from mark-i-m/i128
i128 is stabilizing
2018-03-26 07:04:42 +02:00
Mark Mansi
f25d4fd253 make it pass for now 2018-03-25 21:04:05 -05:00
Mark Mansi
a4d869ca76 i128 is stable 2018-03-25 20:35:23 -05:00
Michael Wright
70d8f85e7e Minor refactoring (walk_ptrs_ty_depth)
Replace `walk_ptrs_ty_depth` with `walk_ptrs_ty` when the depth value is
ignored.
2018-03-21 20:10:10 +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
Oliver Schneider
4edd140e57
Rustup 2018-03-18 13:26:57 +01:00
flip1995
ad459184a3 Don't lint comparison operators in arithmetic impls 2018-03-17 22:02:34 +01:00
flip1995
4fdc81dd7a Check if the panic message was created by the assert-macro 2018-03-17 21:19:32 +01:00
Mateusz Mikuła
3b387eaabe Allow float_cmp in consts lint code
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-16 11:36:14 +01:00
Mateusz Mikuła
c7770bf907 Remove attributes for stable features
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-16 11:09:05 +01:00
Mateusz Mikuła
4c94dd238f Fix BiRem for floats
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-16 10:54:49 +01:00
Mateusz Mikuła
cfb9b982c5 Apply clippy suggestions
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
a54e4661b7 Fix warning
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-15 13:24:51 +01:00
Mateusz Mikuła
3662ee76ab Merge branch 'miri' 2018-03-15 10:49:13 +01:00
Mateusz Mikuła
fd6542d0de Rustup
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-15 10:25:40 +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
d637163435 Fix comment 2018-03-11 14:03:09 +09: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
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
Karim Snj
1ea84c80c1 lint: while immutable condition: refactor to use ExprUseVisitor 2018-03-05 22:42:32 +01:00
Oliver Schneider
7dbf315cde
Merge pull request #2509 from ordovicia/redundant_field_names_range
Remove unused variable and a minor refactoring
2018-03-05 11:13:55 +01:00
Hidehito Yabuuchi
8e406760a4 Move call of is_range_expression() outside of blocks 2018-03-05 18:20:27 +09: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
Hidehito Yabuuchi
e13dcd26e3 Unused variable is left 2018-03-05 17:40:42 +09: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
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
Manish Goregaokar
539b4b61ec Bump to 0.0.187 2018-02-26 12:32:18 -08:00
Manish Goregaokar
a512fb265b oops 2018-02-26 12:31:29 -08:00
Manish Goregaokar
167d978372 Rustup to rustc 1.26.0-nightly (322d7f7b9 2018-02-25) 2018-02-26 11:57:14 -08:00
Karim Snj
5c1be4a4ba lint: immutable only vars in while condition 2018-02-25 18:25:31 +01:00
Oliver Schneider
6097b8240b
Merge pull request #2479 from gnieto/fix/authorLint
Fix author lint
2018-02-24 22:06:25 +01:00
Guillem Nieto
3ac84b2542 Remove explicit visit_qpath method
Instead of replacing the default behaviour of the visit_qpath method,
I've moved the printing code to private method of PrintVisitor
(print_qpath).
2018-02-24 19:34:51 +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
Manish Goregaokar
d5e233a720 Merge branch 'rustup' 2018-02-23 09:03:18 -08:00
Manish Goregaokar
f69fcc08d2 Update Rust to 063deba92e 2018-02-23 09:01:26 -08: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
bootandy
aef07e3392 Do not pass Span by reference 2018-02-22 10:11:20 -05: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
c708154c16 Simplify creation of span_replace_word
Part of unwrap_or test
2018-02-20 12:38:20 -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
Oliver Schneider
88970ec8cf
Remove rarely used type_size helper function 2018-02-09 15:24:31 +01: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