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
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
503a63390d
Cleanup calls to layout_of
2018-02-05 11:28:09 +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
02ee62533d
Merge pull request #2428 from phansch/fix_lint_list_issues
...
Allow empty lines in lint doc examples
2018-02-05 08:18:20 +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
messense
5226b664a1
Rustup to rustc 1.25.0-nightly (0c6091fbd 2018-02-04)
2018-02-05 12:16:17 +08:00
Karim Snj
9575dac491
Fix suggestions for ref matches
2018-02-04 13:41:54 +01:00
Manish Goregaokar
8e8cf2feb1
Bump to 0.0.185
2018-02-02 13:23:32 +05:30
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
Frederick Zhang
c5ee8b5dfb
set CodeSuggestion approximate to false. fixes #2429
2018-02-02 16:24:32 +11:00
Philipp Hansch
5c28cd259a
Allow empty lines in lint doc examples
...
This makes sure that empty lines in lint examples are preserved.
It also fixes the documentation for the invalid_ref lint, which was not
shown because of an extra newline before the lint declaration.
2018-02-01 23:21:36 +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
74ae9b15b5
Add question mark operator
2018-01-31 00:10:35 +01:00
Oliver Schneider
ee8d32850d
Merge pull request #2413 from flip1995/assign_ops
...
Improved suggestion on misrefactored_assign_op lint
2018-01-30 19:17:38 +01:00
flip1995
bd421cb5a5
Additionally suggest the semantic equal variant
2018-01-30 17:45:35 +01:00
Oliver Schneider
8123495e0f
Version bump
2018-01-30 15:02:47 +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
Seiichi Uchida
c3e9ec65a1
Rustup to rustc 1.25.0-nightly (90eb44a58 2018-01-29)
2018-01-30 10:35:22 +09:00
Philipp Hansch
3d54e56ed4
Add workaround for hidden outer attribute
...
If the snippet is empty, it's an attribute that was inserted during macro
expansion and we want to ignore those, because they could come from external
sources that the user has no control over.
For some reason these attributes don't have any expansion info on them, so
we have to check it this way until there is a better way.
2018-01-29 10:03:53 +01:00
Philipp Hansch
aade0d563e
Make lint work on all members of ast::Item_
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
81c5a05648
Bump to 0.0.183
2018-01-29 11:20:29 +05:30
Seiichi Uchida
e40bc64f4f
Rustup to rustc 1.25.0-nightly (7d6e5b9da 2018-01-27)
2018-01-28 16:28:48 +09:00
Michael Wright
daa39b3be1
Fix compilation
...
Fix the compilation broken by these two changes:
+ 2d56abfbeb (diff-7fceb7ede15b205bf5ad812c31d75384L1459)
+ ccf0d8399e (diff-64b696b0ef6ad44140e973801ed82b25L2771)
2018-01-27 15:03:17 +02:00
Devon Hollowood
0413b3f6cf
Add misaligned_transmute lint
2018-01-25 00:48:36 -08:00
Oliver Schneider
930a8c6cab
Version Bump
2018-01-25 08:58:47 +01:00
Manish Goregaokar
5437050013
Rustup to rustc 1.25.0-nightly (a0dcecff9 2018-01-24)
2018-01-25 13:14:04 +05:30
Manish Goregaokar
383cc9e545
Add known false positive for enum_glob_use
2018-01-25 12:55:58 +05:30
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
23f90afa1b
Add configurable threshold, default: 4096
2018-01-23 12:34:40 +01:00
Phil Ellison
29f8cea5fd
Use existing match_var function
2018-01-22 05:46:32 +00:00
Phil Ellison
2132e5c58c
Fix unnecessary_fold bug
2018-01-22 05:34:42 +00:00
Manish Goregaokar
96cba36b46
Rustup to rustc 1.25.0-nightly (97520ccb1 2018-01-21)
2018-01-22 10:35:02 +05:30
mcarton
eb009e2de9
Small documentation formatting fix
2018-01-20 23:32:02 +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
fca248957b
Merge branch 'master' into option_option_pr
2018-01-19 07:56:46 +02:00
HMPerson1
e09805e8ca
Use unit_expr
2018-01-18 17:33:09 -05:00
HMPerson1
7a6c03f876
Add is_unit_expr
to deprecated lints list
2018-01-18 17:29:14 -05:00
HMPerson1
8081f6fd6e
Replace is_unit_expr
2018-01-18 17:04:26 -05: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
bf7efead17
Rename variable
...
Rename `vec` to `ty` in `match_type_parameter`. This variable is a type
and not a vector. Previously it would only refer to `Vec<_>` so the name used
to make sense.
2018-01-18 07:52:24 +02:00
Michael Wright
ec60baa864
Merge branch 'master' into option_option_pr
2018-01-18 07:21:48 +02:00
Phil Ellison
a324a2bc38
Fix typos
2018-01-17 21:54:09 +00:00
Phil Ellison
b73efad600
Add some reviewer comments
2018-01-17 21:06:16 +00:00
Phil Ellison
9806b31d53
Rename lint, improve documentation
2018-01-17 20:21:29 +00:00
Phil Ellison
1cac693bc7
Lint on folds implementing .all, .sum and .product
2018-01-17 19:12:44 +00:00
Vlad-Shcherbina
ada0d2c548
Document map_clone known problems #498
2018-01-17 21:40:47 +03: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
d011dae96d
Rustup
2018-01-15 12:08:17 +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
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
Phil Ellison
360f2359d5
Fix name
2018-01-14 15:30:06 +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
7e833ea5ce
Add description
2018-01-14 10:07:41 +00:00
Phil Ellison
528be23c07
Move get_arg_name into utils
2018-01-14 10:05:01 +00: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
HMPerson1
8505ee7028
Add lint to replace const
s with const fn
s
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
Oliver Schneider
41a710e3f4
Version bump
2018-01-10 09:50:58 +01:00
Oliver Schneider
75c92aa2d2
Fix an ICE in HashMap generalization suggestions
2018-01-09 14:57:44 +01:00
Oliver Schneider
4603e60fca
Merge pull request #2316 from tspiteri/doc-names
...
Add "NaNs" and "GitLab" to `doc-valid-idents`
2018-01-09 09:10:18 +01:00
Oliver Schneider
64af362ab0
Merge pull request #2334 from Rantanen/ast-fix
...
Implement nightly libsyntax changes to fix the build
2018-01-08 10:56:07 +01:00
Philipp Hansch
1a16ac058d
Add 'positive' examples for some lints
...
This allows to see at a quick glance what the improved code could look
like for these lints.
2018-01-08 10:20:04 +01:00
Mikko Rantanen
91ecb3b8ed
Implement nightly libsyntax changes
2018-01-07 05:58:53 +02:00
Pascal Hertleif
82d91c5fcb
Add auto-fixable println!()
suggestion
...
Fixes #2319
2018-01-04 12:46:26 +01:00
Trevor Spiteri
a5d0569a20
Add "NaNs" and "GitLab" to doc-valid-idents
2018-01-02 13:51:35 +01:00
zmt00
a7f423b114
Fix typos in README, documentation
2018-01-01 13:55:40 -08:00