bors
304edf39c3
Auto merge of #4978 - mikerite:fix-4958, r=phansch
...
Fix bad `explicit_into_iter_loop` suggestion
Fixes #4958
changelog: Fix bad `explicit_into_iter_loop` suggestion
2020-01-03 05:59:19 +00:00
Yuki Okushi
bf67fcf5a9
Move is_normalizable
into utils
2020-01-02 11:48:06 +09:00
Michael Wright
ea829bd8c6
Fix bad explicit_into_iter_loop
suggestion
...
Fixes #4958
2020-01-01 07:09:09 +02:00
Krishna Veera Reddy
84a60c3186
Prevent replace_consts
lint within match patterns
...
Currently `replace_consts` lint applies within match patterns but
the suggestion is incorrect as function calls are disallowed in
them. To fix this we prevent the lint from firing within patterns.
2019-12-31 10:33:15 -08:00
Krishna Veera Reddy
42e4595d3a
Indicate anonymous lifetimes for types
2019-12-31 09:22:35 -08:00
Krishna Veera Reddy
c09e79e226
Lint within internal macros without a suggestion
2019-12-31 09:22:35 -08:00
Krishna Veera Reddy
aa66f760c3
Destructure mem:replace
arguments
2019-12-31 09:22:35 -08:00
Krishna Veera Reddy
78b4dfc57c
Move mem_replace_with_default
out of nursery
2019-12-31 09:22:34 -08:00
Krishna Veera Reddy
26812f733d
Prevent mem_replace_with_default
lint within macros
...
Also added test cases for internal and external macros.
2019-12-31 09:22:34 -08:00
Krishna Veera Reddy
8db319f957
Use mem::take
instead of mem::replace
when applicable
...
`std::mem::take` can be used to replace a value of type `T`
with `T::default()` instead of `std::mem::replace`.
2019-12-31 09:22:34 -08:00
Yuki Okushi
f922812541
Fix ICE due to normalization failure
2019-12-31 20:55:11 +09:00
Yuki Okushi
bf08998b5c
Use is_empty()
2019-12-31 16:50:43 +09:00
Yuki Okushi
9086b17e14
Rustup to rust-lang/rust#67707
2019-12-31 09:17:56 +09:00
bors
3036b0e6d5
Auto merge of #4970 - krishna-veerareddy:fix-replace-consts-documentation, r=flip1995
...
Fix `replace_consts` lint documentation
`replace_consts` lint no longer lints for the usage of
`ATOMIC_{SIZE}_INIT` and `ONCE_INIT` so removing any
occurences of them in the documentation.
changelog: Update `replace_consts` lint documentation
2019-12-30 17:28:57 +00:00
bors
cecaca3382
Auto merge of #4634 - m-ober:feature/2320-map-or, r=llogiq
...
Add real suggestion to option_map_unwrap_or
changelog: Add real suggestion to `option_map_unwrap_or`
Fixes #2320
2019-12-30 15:50:06 +00:00
Krishna Veera Reddy
f533b98121
Fix replace_consts
lint documentation
...
`replace_consts` lint no longer lints for the usage of
`ATOMIC_{SIZE}_INIT` and `ONCE_INIT` so removing any
occurences of them in the documentation.
2019-12-30 05:55:22 -08:00
Yuki Okushi
a4c201e6b4
Rustup to rust-lang/rust#66942
2019-12-30 13:02:10 +09:00
Yuki Okushi
cf76eb48de
Rustup to rust-lang/rust#67151
2019-12-29 12:39:46 +09:00
Micha Ober
c5046fdce5
Add real suggestion to option_map_unwrap_or
2019-12-28 23:24:45 +01:00
bors
6bf87d5bbf
Auto merge of #4964 - JohnTitor:fix-potential-ice, r=flip1995
...
Possibly fix an ICE on test
Fix a potential ICE on test with debug assertion, caused on rust-lang/rust#67661 .
r? @oli-obk
changelog: none
2019-12-28 18:41:38 +00:00
mgr-inz-rafal
a208906afb
Fixes for elided lifetimes
2019-12-28 17:14:19 +01:00
mgr-inz-rafal
f191e916bd
Add new lint (modulo_arithmetic)
2019-12-28 16:46:08 +01:00
Yuki Okushi
bca125935c
code review
2019-12-28 22:45:41 +09:00
Yuki Okushi
fbdb13cfb0
Possibly fix an ICE on test
2019-12-28 22:30:44 +09:00
Yuki Okushi
5962fffcfe
Suggest similar lint name on unknown_clippy_lints
2019-12-27 22:07:55 +09:00
Yuki Okushi
e2636729ec
Rustup to rust-lang/rust#66936
2019-12-27 16:13:53 +09:00
bors
b0c4744d57
Auto merge of #4956 - JohnTitor:decimal-lit-suffix, r=llogiq
...
Do not drop suffixes on `decimal_literal_representation`
Fixes #4763
changelog: Do not drop type suffixes on `decimal_literal_representation`
2019-12-25 19:39:13 +00:00
Yuki Okushi
b68e65b4da
Do not drop suffixes on decimal_literal_representation
2019-12-26 01:22:36 +09:00
Yuki Okushi
ad936389e1
Correct documentation for len_zero
2019-12-25 21:06:55 +09:00
bors
a68ef55dbf
Auto merge of #4947 - rust-lang:doc-main-extern-crate, r=flip1995
...
Avoid needless_doctest_main on 'extern crate'
This fixes #4927 .
r? @flip1995
changelog: none
2019-12-24 15:03:54 +00:00
bors
1837cbce6c
Auto merge of #4885 - rust-lang:mut-key-types, r=flip1995
...
new lint: mutable_key_type
This fixes #732 - well, partly, it doesn't adress `Hash` impls, but the use of mutable types as map keys or set members
changelog: add `mutable_key_type` lint
r? @flip1995
2019-12-24 13:32:45 +00:00
Andre Bogus
40435acf3d
new lint: mutable_key_type
2019-12-24 13:46:19 +01:00
Andre Bogus
129d0cd0f4
Avoid needless_doctest_main on 'extern crate'
2019-12-24 13:42:37 +01:00
Lzu Tao
652666b288
rustup "Add span information to ExprKind::Assign
"
2019-12-24 11:25:24 +07:00
Lzu Tao
f5b896451a
do minor cleanups
...
* ToString and AsRef are in prelude, no need to import them
2019-12-24 03:06:52 +07:00
bors
37b7970a7c
Auto merge of #4934 - illicitonion:exhaustive_match, r=flip1995
...
Update wildcard enum match lint for non_exhaustive enums
changelog: wildcard_enum_match_arm gives better suggestions for non_exhaustive enums
2019-12-23 17:00:38 +00:00
bors
b38b026a98
Auto merge of #4823 - Areredify:must_use_res, r=flip1995
...
Add `let_underscore_must_use` lint
changelog: closes #4812 , added a new `let_underscore_must_use` lint, moved `is_must_use_ty` to utils, added `is_must_use_fn` util function
2019-12-23 06:16:37 +00:00
bors
40881e7713
Auto merge of #4941 - lzutao:utils-mod, r=phansch
...
a few small cleanups
changelog: none
2019-12-23 06:00:54 +00:00
Yuki Okushi
d5316163b6
Rustup to rust-lang/rust#66877
2019-12-23 09:07:46 +09:00
Lzu Tao
185e608ae2
a few small cleanups
2019-12-23 05:28:23 +07:00
Mikhail Babenko
a310cb2d0b
implemented let_underscore
lint
...
actually add files
update lints
change to pedantic
2019-12-22 22:10:25 +03:00
Mikhail Babenko
8b4a3b74e9
move is_must_use_ty to utils
2019-12-22 22:06:48 +03:00
flip1995
f6a5b608ef
Rustup to rust-lang/rust#66931
2019-12-22 15:56:34 +01:00
flip1995
9632e27487
Add <'_> where necessary
2019-12-22 15:42:41 +01:00
Daniel Wagner-Hall
4f4444c429
Remove trailling .s
2019-12-22 11:51:39 +00:00
bors
8723eb6035
Auto merge of #4937 - mikerite:fix-4824, r=phansch
...
Fix `map_clone` false positive
Don't lint when the item type is not a reference. `copied` only applies to references.
changelog: Fix `map_clone` false positive
2019-12-22 09:55:50 +00:00
bors
19dbb22032
Auto merge of #4930 - flip1995:unused_label, r=phansch
...
Deprecate unused_label lint
This lint was uplifted/turned into warn-by-default in rustc
Fixes #4925
changelog: Deprecate [`unused_label`] lint
2019-12-22 09:39:32 +00:00
Michael Wright
b15b977d76
Fix map_clone
false positive
...
Don't lint when the item type is not a reference. `copied` only applies
to references.
2019-12-22 11:26:51 +02:00
Daniel Wagner-Hall
c21b4ad7d4
Update wildcard enum match lint for non_exhaustive enums
2019-12-22 02:13:39 +00:00
Krishna Veera Reddy
91a491e68e
Reduce cognitive complexity lint span
...
Currently the cognitive complexity lint spans the entire function
body making it really difficult to read and refactor the code in
editors. To fix this we reduce the lint span to the function name.
2019-12-21 18:07:53 -08:00
Lzu Tao
d1ca5f1d7c
rustup "Merge ast::Mutability
and mir::Mutability
"
2019-12-21 18:38:45 +00:00
flip1995
710c749bb1
Deprecate unused_label lint
...
This lint was uplifted/turned into warn-by-default in rustc
2019-12-21 16:20:30 +01:00
Matthias Krüger
e5a5b0a077
rustup https://github.com/rust-lang/rust/pull/67455
2019-12-20 21:19:46 +01:00
bors
b4ad56e5c4
Auto merge of #4920 - lily-commure:fix-unnecessary-filter-map-docs, r=phansch
...
Fix documentation example for unnecessary_filter_map.
Fixes #4919 .
changelog: none
2019-12-20 07:27:24 +00:00
bors
a86463c99f
Auto merge of #4913 - mikerite:step-by-zero-20191218, r=phansch
...
Move `iterator_step_by_zero` and correct the documentation
Move `iterator_step_by_zero` and correct the documentation.
changelog: Corrected `iterator_step_by_zero` documentation
2019-12-20 07:10:11 +00:00
Emma
5a6b00ce50
Fix 'redudant' spelling in redundant_clone docs
...
The word 'redundant' is spelled incorrectly in the **What it does** section of the redundant_clone documentation.
2019-12-20 01:07:42 +01:00
Lily Chung
6e8c2bf8e6
Fix documentation example for unnecessary_filter_map.
2019-12-19 15:48:17 -08:00
bors
584f95fc54
Auto merge of #4915 - mikerite:fix-4912-2, r=phansch
...
Fix `expect_fun_call` false negative on references
Closes #4912
changelog: Fix `expect_fun_call` false negative on references
2019-12-19 09:44:14 +00:00
Michael Wright
1559f8bf34
Fix expect_fun_call
false negative on references
...
Closes #4912
2019-12-19 06:57:56 +02:00
mikerite
710e06dd29
Fix iterator_step_by_zero
description in declaration
...
Co-Authored-By: Phil Hansch <dev@phansch.net>
2019-12-19 06:51:26 +02:00
Michael Wright
38d0b2199a
Correct iterator_step_by_zero
documentation
2019-12-18 18:59:59 +02:00
Michael Wright
e097fca4df
Update iterator_step_by_zero
...
Move `iterator_step_by_zero` into `methods` since it applies to all
iterators and not just ranges. Simplify the code while doing so.
2019-12-18 18:59:43 +02:00
Krishna Veera Reddy
460d5a3b5a
Prevent cmp_nan
when inside constants
...
`std::{f32,f64}::is_nan` isn't a const fn so prevent `cmp_nan`
lint from running within constant comparisons.
2019-12-17 19:18:42 -08:00
Krishna Veera Reddy
eb0408ea65
Detect comparisons with NAN constants
...
Currently `cmp_nan` lint doesn't detect comparisons with NaN's
if the operands are consts variables so to fix this we evaluate
the const variables first before testing for NaN.
2019-12-17 18:51:30 -08:00
Krishna Veera Reddy
728a2418cb
Fix clippy build failure
...
Clippy build fails because the feature `result_map_or` has been
stabilized in v1.41.0 but we still have an explicit feature
attribute for it.
2019-12-16 22:29:05 -08:00
bors
d82debbd01
Auto merge of #4883 - krishna-veerareddy:issue-4818-cast-sign-loss-false-positive, r=flip1995
...
Fix false positive with cast_sign_loss lint
`cast_sign_loss` lint incorrectly suggests that the result of `checked_abs`, `rem_euclid` and `checked_rem_euclid` cannot be casted to an unsigned integer without loss.
Fixes #4818 #4764 #4743
changelog: Fix false positives in `cast_sign_loss` lint
2019-12-12 00:34:59 +00:00
bors
221bf650f6
Auto merge of #4886 - rust-lang:must-use-pub-only, r=phansch
...
Lint only exported must_use_candidates
As promised on #4779 , here's the check for publicly visible items for `must_use_candidate`
changelog: none
2019-12-11 12:01:10 +00:00
Krishna Veera Reddy
c77fc06d52
Add lint to detect transmutes from float to integer
...
Add lint that detects transmutation from a float to an integer
and suggests usage of `{f32, f64}.to_bits()` instead.
2019-12-07 16:33:49 -08:00
Andre Bogus
a60177cc1e
Lint only exported must_use_candidates
2019-12-06 20:10:14 +01:00
RobbieClarken
f5d0a452ba
Add lint for pub fns returning a Result
without documenting errors
...
The Rust Book recommends that functions that return a `Result` type have
a doc comment with an `# Errors` section describing the kind of errors
that can be returned
(https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html#commonly-used-sections ).
This change adds a lint to enforce this. The lint is allow by default;
it can be enabled with `#![warn(clippy::missing_errors_doc)]`.
Closes #4854 .
2019-12-06 17:19:05 +10:30
Krishna Veera Reddy
7002a9ee83
Fix false positive with cast_sign_loss lint
...
`cast_sign_loss` lint incorrectly suggests that the result of
`checked_abs`, `rem_euclid` and `checked_rem_euclid` cannot
be casted to an unsigned integer without loss.
2019-12-05 15:47:15 -08:00
daxpedda
946961d19e
Change to only detect in external macros.
2019-12-05 11:06:13 +01:00
daxpedda
d11b958faf
Fix false positive in string_add
.
2019-12-04 21:51:02 +01:00
Matthias Krüger
98e433d70d
Rustup to rust-lang/rust#66878
2019-12-04 01:34:01 +01:00
bors
c66cca44c8
Auto merge of #4877 - flip1995:manual_swap_4853, r=llogiq
...
Fix FP in manual_swap lint with slice-like types
Fixes #4853
changelog: Fix FP in [`manual_swap`] lint with slice-like types and make it auto applicable
2019-12-03 18:36:19 +00:00
flip1995
c56f72da35
Make OP_REF lint suggestion MaybeIncorrect
...
cc #2597
2019-12-03 18:37:07 +01:00
Christopher Durham
718558064d
Fire clippy::op_ref on PartialOrd but !Ord types
2019-12-03 18:37:07 +01:00
flip1995
f6a75f17f6
Rustup to rust-lang/rust#66935
2019-12-03 18:37:06 +01:00
flip1995
aa2381d9d0
Fix rustdoc examples
2019-12-03 16:29:05 +01:00
flip1995
1e3b24de43
Make manual_swap autofixable
2019-12-03 13:42:05 +01:00
flip1995
bd39a608a8
Formatting
2019-12-03 13:25:41 +01:00
flip1995
d1d5f790f5
Fix FP in manual_swap lint with slice-like types
2019-12-03 13:25:41 +01:00
flip1995
286b39d2e5
Rustup to rust-lang/rust#64736
2019-12-02 20:39:40 +01:00
Philipp Hansch
474e9a131d
Use assert_crate_local for a more explicit error
...
`assert_crate_local` does the same as the previous `if let` but with a
more explicit error message if it's not a `ClearCrossCrate::Set`.
2019-12-02 12:09:38 +01:00
Philipp Hansch
6669c2c6ce
Rustup to https://github.com/rust-lang/rust/pull/66789
2019-12-02 09:51:35 +01:00
bors
45196cee02
Auto merge of #4690 - lzutao:fix-test-on-non-amd64, r=flip1995
...
generate stderr file on 32bit pointer system
changelog: none
2019-12-01 18:39:21 +00:00
Lzu Tao
5488672d1f
account for external macro in MISSING_INLINE_IN_PUBLIC_ITEMS lint
2019-12-01 19:38:01 +07:00
Lzu Tao
142b289a51
chore: fix and split some ui tests on 32bit system
2019-12-01 19:07:02 +07:00
Andre Bogus
ef7587d957
Less needless_doctest_main false positives
...
This checks if a) the `fn main() {}` function is empty or if the doctest contains a `static`. In both cases don't lint.
2019-11-29 21:47:26 +01:00
Philipp Hansch
c1ccba005f
fmt
2019-11-29 20:47:50 +01:00
Philipp Hansch
ad6d8a4700
Make triggering this lint less likely 📎
2019-11-29 20:47:50 +01:00
Philipp Hansch
676f14baa0
Add custom ICE message that points to Clippy repo
...
This utilizes https://github.com/rust-lang/rust/pull/60584 by setting
our own `panic_hook` and pointing to our own issue tracker instead of
the rustc issue tracker.
This also adds a new internal lint to test the ICE message.
**Potential downsides**
* This essentially copies rustc's `report_ice` function as
`report_clippy_ice`. I think that's how it's meant to be implemented, but
maybe @jonas-schievink could have a look as well =)
The downside of more-or-less copying this function is that we have to
maintain it as well now.
The original function can be found [here][original].
* `driver` now depends directly on `rustc` and `rustc_errors`
Closes #2734
[original]: 59367b074f/src/librustc_driver/lib.rs (L1185)
2019-11-29 20:47:47 +01:00
bors
04036877ef
Auto merge of #4863 - phansch:use_self, r=flip1995
...
Move use_self to nursery
Closes #4859
We have a lot of false positives in this lint, so I think it makes sense
to move this to the nursery until they are resolved.
changelog: Move `use_self` lint to nursery, due to many false positives
2019-11-29 18:17:41 +00:00
flip1995
fd7eca2baf
Run update_lints
2019-11-29 14:50:19 +01:00
flip1995
604e6ba0e2
Add projections check to EUV for escape analysis
2019-11-29 12:57:10 +01:00
flip1995
b2523afae4
Use infer_ctxt
2019-11-29 11:12:19 +01:00
Philipp Hansch
70a2a29453
Move use_self to nursery
...
Closes #4859
We have a lot of false positives in this lint, so I think it makes sense
to move this to the nursery until they are resolved.
changelog: Move `use_self` lint to nursery, due to many false positives
2019-11-29 07:51:49 +01:00
Manish Goregaokar
45842e5131
Fix categorizations
2019-11-28 07:33:12 -08:00
Manish Goregaokar
c1c5c3522d
Fix arguments on ExprUseVisitor::new
2019-11-28 07:20:37 -08:00
Manish Goregaokar
dc9d839410
euv moved from middle to typeck
2019-11-28 07:17:56 -08:00
Manish Goregaokar
85bb66480c
cmt_ -> Place
2019-11-28 07:09:02 -08:00
bors
dbdd75ab52
Auto merge of #4855 - phansch:rollup-x7yail7, r=phansch
...
Rollup of 3 pull requests
Successful merges:
- #4832 (Add some positive examples to lint docs)
- #4842 ([comparison_chain] #4827 Check `core::cmp::Ord` is implemented)
- #4847 (fixing a typo)
Failed merges:
changelog: none
r? @ghost
2019-11-28 09:30:16 +00:00
Phil Hansch
a05f3cb9a1
Rollup merge of #4847 - rust-lang:offest, r=phansch
...
fixing a typo
changelog: none
2019-11-28 10:19:06 +01:00
Phil Hansch
1165176840
Rollup merge of #4842 - timbodeit:comparison-chain-false-positive-4827, r=flip1995
...
[comparison_chain] #4827 Check `core::cmp::Ord` is implemented
Only emit `comparison_chain` lint, if `cmp` is actually available on the type being compared. Don't emit lint in cases where only `PartialOrd` is implemented.
I haven't yet fully understood [Adjustments](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/adjustment/struct.Adjustment.html ). I would appreciate, if someone could double check whether my usage of [expr_ty](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TypeckTables.html#method.expr_ty ) in `clippy_lints/src/comparison_chain.rs:91` is correct or if there are cases where using [expr_ty_adjusted](https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/struct.TypeckTables.html#method.expr_ty_adjusted ) would lead to a different result when used with `utils::implements_trait`.
---
fixes #4827
changelog: [comparison_chain] Check `core::cmp::Ord` is implemented
2019-11-28 10:19:05 +01:00
Phil Hansch
6686892cbf
Rollup merge of #4832 - dario23:i4829, r=phansch
...
Add some positive examples to lint docs
fixes #4829
changelog: Add some positive examples to lint docs
2019-11-28 10:19:04 +01:00
bors
f3288eb48d
Auto merge of #4851 - daxpedda:float-arithmetic, r=flip1995
...
Remove negative float literal checks.
Fixes #4850 .
changelog: Remove negative float literal checks.
2019-11-28 09:11:45 +00:00
bors
d377486561
Auto merge of #4821 - Areredify:as_conversions, r=flip1995
...
Add `as_conversions` lint
changelog: closes #4771 , adding a new pedantic allow-by-default lint that lints against any usage of `as`.
2019-11-28 08:53:36 +00:00
bors
d6accfcc82
Auto merge of #4808 - euclio:string-lit-as-bytes, r=phansch
...
trigger string_lit_as_bytes when literal has escapes
---
changelog: fix string_lit_as_bytes false negative
Depends on rust-lang/rust#66349.
Fixes #4796 .
2019-11-28 07:26:04 +00:00
Lzu Tao
d0e0ffa99f
make use of Result::map_or
2019-11-28 10:52:20 +07:00
Manish Goregaokar
40c91ec758
config.usize_ty -> config.ptr_width
...
From http://github.com/rust-lang/rust/pull/66719
2019-11-27 15:09:48 -08:00
Manish Goregaokar
e381143a6b
More borrowkind fixes
2019-11-27 15:09:48 -08:00
Manish Goregaokar
3430bc1bc5
Re-add wildcards for BorrowKind in some places
2019-11-27 15:09:48 -08:00
Manish Goregaokar
341e266508
Add BorrowKind::Ref
2019-11-27 14:39:28 -08:00
Andy Russell
d33ad45d7d
trigger string_lit_as_bytes when literal has escapes
2019-11-26 17:07:17 -05:00
Ian Kronquist
aef2662896
Update literal_representation.rs
2019-11-25 16:30:46 -08:00
Ian Kronquist
b13f4e4faf
Update literal_representation.rs
2019-11-25 16:28:46 -08:00
daxpedda
e46bedca3c
Remove negative float literal checks.
2019-11-25 19:23:28 +01:00
Mikhail Babenko
9ec8888b91
implemented as_conversions
lint
...
actuall add files
add better example and change pedantic to restriction
2019-11-25 18:12:52 +03:00
flip1995
6eeac46b91
Run rustfmt
2019-11-25 15:20:10 +01:00
Andre Bogus
47ef5394de
fixing a typo
2019-11-25 14:06:34 +01:00
flip1995
d2d62de841
Rustup to rust-lang/rust#64856
2019-11-25 13:56:24 +01:00
flip1995
d43c424145
Rustup to rust-lang/rust#66671
2019-11-25 13:18:38 +01:00
Tim Bodeit
fff9a8ea9c
[comparison_chain] #4827 Check core::cmp::Ord
is implemented
...
Only emit lint, if `cmp` is actually available on the type being
compared. Don't emit lint in cases where only `PartialOrd` is
implemented.
2019-11-24 10:00:06 +01:00
bors
cc35165f52
Auto merge of #4840 - flip1995:rollup-jqk3a3i, r=flip1995
...
Rollup of 5 pull requests
Successful merges:
- #4730 (Fix check_infinite_loop (while_immutable_condition) by checking for break or return inside loop body)
- #4766 (Fix false positive in derive_hash_xor_eq)
- #4811 (Literal Representation Restructure)
- #4820 (doc: fix the comment above the lint function)
- #4830 (use more efficient code to generate repeated string)
Failed merges:
r? @ghost
changelog: none
2019-11-23 17:40:57 +00:00
Philipp Krones
b4524004e0
Rollup merge of #4830 - lzutao:str-repeat, r=flip1995
...
use more efficient code to generate repeated string
see https://rust.godbolt.org/z/z9vrFP for comparison
changelog: none
2019-11-23 18:16:03 +01:00
Philipp Krones
ae69bc4980
Rollup merge of #4820 - guanqun:comment-fix, r=flip1995
...
doc: fix the comment above the lint function
it's a simple comment fix.
---
changelog: none
2019-11-23 18:16:01 +01:00
Philipp Krones
623d8c4640
Rollup merge of #4811 - mikerite:lit_repr_20191113, r=flip1995
...
Literal Representation Restructure
This pull request restructures the literal_representation module to be easier to understand and maintain. I split the changes into a lot of commits to make reviewing easier.
changelog: none
2019-11-23 18:16:00 +01:00
Philipp Krones
93d84d7dda
Rollup merge of #4766 - phansch:fix_fp_in_derive_hash_xor_eq, r=flip1995
...
Fix false positive in derive_hash_xor_eq
This fixes a false positive in derive_hash_xor_eq where the lint was
triggering on user-defined traits called `Hash`.
changelog: Fix false positive in `derive_hash_xor_eq`
Fixes #4658
2019-11-23 18:15:59 +01:00
Philipp Krones
016857db65
Rollup merge of #4730 - yerke:fix-check_infinite_loop, r=flip1995
...
Fix check_infinite_loop (while_immutable_condition) by checking for break or return inside loop body
changelog: Fix check_infinite_loop (while_immutable_condition) by checking for break or return inside loop body
fixes #4648
2019-11-23 18:15:58 +01:00
flip1995
7cc8fa2e25
Fix fallout
2019-11-23 18:09:09 +01:00
flip1995
9b4faf97f3
Run update_lints
2019-11-23 17:57:28 +01:00
flip1995
7db973d06f
Merge remote-tracking branch 'FlorianRohm/issue/4623' into rollup-new-lints
2019-11-23 17:56:13 +01:00
flip1995
353668ee6c
Merge remote-tracking branch 'Areredify/large_stack_arrays' into rollup-new-lints
2019-11-23 17:55:10 +01:00
flip1995
213765a1d3
Merge remote-tracking branch 'popzxc/if-same-cond-fn' into rollup-new-lints
2019-11-23 17:54:26 +01:00
flip1995
d151ef7437
Merge remote-tracking branch 'upstream/zst-offset' into rollup-new-lints
2019-11-23 17:53:41 +01:00
Yerkebulan Tulibergenov
1cba0c9f7d
fix check_infinite_loop by checking for break or return inside loop body
2019-11-22 09:13:46 -08:00
flip1995
e4636f3c39
Rustup to rust-lang/rust#66515
...
Fixes #4835
2019-11-22 13:47:33 +01:00
flip1995
3c308b86c8
Remove never_type feature
...
Stablized in rust-lang/rust#65355
2019-11-22 13:47:33 +01:00
Igor Aleksanov
bbb8cd4fbb
Implement if_same_cond_fn lint
...
Run ./util/dev
Revert changelog entry
Rename lint to same_functions_in_if_condition and add a doc example
Add testcases with different arg in fn invocation
2019-11-20 06:54:46 +03:00
Johannes Schilling
c6e6b292bd
add a good example for the approx_const lint
2019-11-19 20:14:09 +01:00
Johannes Schilling
c58a5c6272
Add suggested good cases in docs for lifetimes lint
2019-11-19 20:03:41 +01:00
lzutao
d229d91d88
use usize::from
...
Co-Authored-By: Mateusz Mikuła <mati865@users.noreply.github.com>
2019-11-19 23:47:18 +07:00
Lzu Tao
4da0da9281
use more efficient code to generate repeated string
...
see https://rust.godbolt.org/z/z9vrFP for comparison
2019-11-19 23:08:50 +07:00
Manish Goregaokar
aa5a95f00c
Rustup to rustc 1.41.0-nightly (a0d40f8bd 2019-11-18)
2019-11-18 23:49:58 -08:00
Andre Bogus
c21b198576
New lint: zst_offset
2019-11-15 22:39:27 +01:00
Guanqun Lu
f2d8197110
doc: fix the comment above the lint function
2019-11-16 01:55:06 +08:00
Florian Rohm
73806b72a9
register new lint "tabs in doc comments" and update readme
2019-11-15 16:26:30 +01:00
Florian Rohm
f8f7800b18
add new lint tabs in doc comments
2019-11-15 16:25:47 +01:00
Yuki Okushi
0736dd9dfe
Rustup rust-lang/rust#66233
2019-11-14 17:44:23 +09:00
Michael Wright
ceb0b2d41a
literal repr: ignore more warnings in macros
2019-11-14 08:19:02 +02:00
Michael Wright
75e2dcf56b
literal representation: simplification
...
Simplify calculation in grouping. Add test case to ensure `count()`
can't be zero in that branch.
2019-11-14 07:42:04 +02:00
Areredify
7fddac0404
Add new lint: large stack array
...
added documentation
minor style fix
change as to ::from
add ignore to doc
include threshold in lint message/make suggestion more apparent/use Scalar api instead of matching
style fix
shange snippet_opt to snippet
2019-11-13 21:44:29 +03:00
Michael Wright
2e9d173be1
literal representation restructure 12
...
Export function for formatting literals and remove crate visibility from
other items.
2019-11-13 08:28:50 +02:00
Michael Wright
eb9caf3050
literal representation restructure 11
...
Rename `grouping_hint` to `format` and use the term consistently.
2019-11-13 08:28:06 +02:00
Michael Wright
a8ca8a21c1
literal representation restructure 10
...
Rename DigitInfo to NumericLiteral
2019-11-13 08:28:01 +02:00
Michael Wright
a9c5a599e3
literal representation restructure 9
...
Only store valid suffixes (and not mistyped suffixes) in DigitInfo.
Check for mistyped suffixes later and not when DigitInfo is created.
This opens the door to more sophisticated mistyped suffix checks later.
2019-11-13 08:27:54 +02:00
Michael Wright
a58b980bd8
literal representation restructure 8
...
Store the digit parts directly in DigitInfo since we need them anyway.
2019-11-13 08:27:49 +02:00
Michael Wright
b62543f756
literal representation restructure 7
...
Replace `do_lint` with `get_group_size`. Return `None` if there are no
groups.
2019-11-13 08:27:42 +02:00
Michael Wright
abf62d8011
literal representation restructure 6
...
Add `group_digits` helper function.
2019-11-13 08:27:37 +02:00
Michael Wright
ec664e84bf
literal representation restructure 5
...
Use `split_digit_parts` in `check_lit`.
2019-11-13 08:27:27 +02:00
Michael Wright
2d244d3358
literal representation restructure 4
...
Simplify `grouping_hint` by splitting digits into parts and handling
one at a time.
Fixes #4762
2019-11-13 08:27:19 +02:00
Michael Wright
2e8946a6de
literal representation restructure 3
...
Move suffix check into `check_lit` so that it isn't done repeatedly.
2019-11-13 08:27:14 +02:00
Michael Wright
2dbd34ffe8
literal representation restructure 2
...
Consolidate warning handling using "poor man's try".
2019-11-13 08:27:05 +02:00
Michael Wright
8f5b4f3f5c
literal representation restructure 1
...
Combine macro expansion checks. Indentation is a little strange to
avoid rustfmt issue.
2019-11-13 08:26:52 +02:00
Ian Kronquist
5c31efd429
Typo in literal_representation.rs
...
Octal numbers can't have 8 in them ;)
2019-11-12 16:02:02 -08:00
Andre Bogus
5f0f67375d
no more must-use-candidate on trait impls
2019-11-12 23:36:22 +01:00
Andy Russell
add766493a
don't warn on CRLF in with_newline
lints
2019-11-12 08:50:22 -05:00
bors
2646b108d5
Auto merge of #4803 - tomprogrammer:issue-4732, r=phansch
...
Fix false positive in explicit_counter_loop lint
When the counter was used in a closure after the loop the lint didn't detect the
usage of the counter correctly.
changelog: Fix false positive in `explicit_counter_loop`
Fixes #4732
2019-11-11 19:24:20 +00:00
Manish Goregaokar
e9a3e54910
MutImmutable -> Immutable, MutMutable -> Mutable, CaptureClause -> CaptureBy
2019-11-11 10:58:39 -08:00
bors
79d3b30cd7
Auto merge of #4801 - mikerite:to_digit_is_some, r=flip1995
...
To digit is some
Add a lint that recommends replacing `to_digit().is_some()` with `is_digit()` on `char`s
changelog: Add lint `to_digit_is_some`
2019-11-11 11:28:27 +00:00
Thomas Bahn
c88afce6fc
Fix false positive in explicit_counter_loop lint
...
When the counter was used in a closure after the loop the lint didn't detect the
usage of the counter correctly.
2019-11-11 11:36:53 +01:00
Philipp Hansch
78b7e8544b
Fix false positive in derive_hash_xor_eq
...
This fixes a false positive in derive_hash_xor_eq where the lint was
triggering on user-defined traits called `Hash`.
2019-11-11 07:59:53 +01:00
bors
338f5e6801
Auto merge of #4780 - flip1995:ice_4775, r=phansch
...
Fix ICE #4775
Fixes #4775
changelog: Fix ICE with const_generics
2019-11-11 06:23:27 +00:00
Michael Wright
c1fd75005e
Fix breakage due to rust-lang/rust#65324
2019-11-11 06:22:50 +02:00
Michael Wright
89b966cdf1
Really fix to_digit_is_some
documentation
2019-11-10 18:00:04 +02:00
Michael Wright
9aefae4226
Fix to_digit_is_some
documentation
2019-11-10 17:58:17 +02:00
Michael Wright
a9b5b36769
Fix to_digit_is_some
dogfood errors
2019-11-10 15:53:08 +02:00
Michael Wright
5817a4fa06
Add to_digit_is_some
lint
2019-11-10 15:52:59 +02:00
Manish Goregaokar
3ef852b74c
Rustup to rustc 1.40.0-nightly (ac162c6ab 2019-11-09)
2019-11-09 17:04:42 -08:00
bors
b0b3dc6e76
Auto merge of #4776 - mikerite:fix-4727, r=flip1995
...
Fix crash in `use-self` lint
Fixes #4727
changelog: Fix crash in `use-self` lint
2019-11-08 22:06:21 +00:00
HMPerson1
94b36d9ca4
dogfood
2019-11-08 15:41:54 -05:00
HMPerson1
d4758420e6
Rustup rust-lang/rust#66188
2019-11-08 15:12:08 -05:00
Michael Wright
9c48a2c39a
Merge branch 'master' into fix-4727
2019-11-08 07:15:16 +02:00
Lzu Tao
ff5bf67b94
remove unused warnings
2019-11-08 10:23:42 +07:00
Lzu Tao
acbe224f6a
rustup https://github.com/rust-lang/rust/pull/65916
2019-11-08 10:23:42 +07:00
bors
4be144af87
Auto merge of #4697 - Licenser:no-exit, r=flip1995
...
restriction lint for `std::process::exit`
Addition to #4655 - adds the lint checking for `std::process::exit`
changelog: add restriction lint for `std::process::exit`
2019-11-07 22:05:51 +00:00
bors
426c05ae33
Auto merge of #4758 - mikerite:dec_lit_20191031, r=flip1995
...
`DecimalLiteralRepresentation` simplification
Remove recalculation of literal value.
changelog: none
2019-11-07 21:06:18 +00:00
bors
842cfb0311
Auto merge of #4757 - evanjs:issue/4748, r=phansch
...
Fix Deprecated lints don't expand
### Move doc comments inside of declare_deprecated_lint macros so that they are picked up by lintlib.py
### fixes #4748
Unable to `cargo test` locally (I'm on NixOS, and keep getting errors that are similar to those #4714 might solve) but I have verified that all deprecated lints can now be expanded like other lints.
![2019-10-30_21:06:28](https://user-images.githubusercontent.com/1847524/67910501-5815de00-fb59-11e9-9fa2-91fe6a8b9bb9.png )
changelog: Show deprecated lints in lint documentation again
2019-11-07 20:47:14 +00:00
Heinz N. Gies
abdf027df3
Update clippy_lints/src/lib.rs
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-11-07 17:11:06 +01:00
Heinz N. Gies
a984702b50
Update clippy_lints/src/lib.rs
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-11-07 17:11:05 +01:00
Heinz N. Gies
eae6a62db7
Simplify dentry point detection
2019-11-07 17:11:05 +01:00
Heinz N. Gies
ffcf4bec0f
Improve function checking
2019-11-07 17:10:18 +01:00
Heinz N. Gies
9471669e46
Exclude main from exit lint
2019-11-07 17:10:18 +01:00
Heinz N. Gies
60c2fdd0b9
Update lints
2019-11-07 17:10:18 +01:00
Heinz N. Gies
695aa59c6d
Add lint for exit
2019-11-07 17:10:18 +01:00
flip1995
08fd397c2c
Deprecate into_iter_on_array
lint
...
This lint was uplifted/reimplemented by rustc.
Rustup to rust-lang/rust#66017
2019-11-07 14:04:29 +01:00
flip1995
e917b01286
Rustup to rust-lang/rust#65884
2019-11-07 13:27:00 +01:00
Manish Goregaokar
305ba73fc1
Rustup to rustc 1.40.0-nightly (7a76fe76f 2019-11-07)
2019-11-07 13:14:40 +01:00
Michael Wright
e3c1aea157
use-self: correctly ignore dummy paths
2019-11-07 05:59:13 +02:00
flip1995
d3e88a58b9
Fix ICE #4775
2019-11-06 18:14:47 +01:00
bors
0be213bb79
Auto merge of #4772 - HMPerson1:tastier_ice_cream, r=flip1995
...
Use correct TypeckTables when hashing bodies
Fixes #4760
changelog: Fix ICE while hashing block expressions #4760
r? @phansch
2019-11-06 15:50:42 +00:00
Lzu Tao
51632530d7
rustup rust-lang/rust#65776
2019-11-06 17:46:45 +07:00
Michael Wright
a952708b6c
Fix crash in use-self
lint
...
Fixes #4727
2019-11-06 07:33:56 +02:00
Lzu Tao
98313bd83a
chore: remove unnecessary parentheses around type
2019-11-05 22:05:55 +07:00
HMPerson1
e3d6069e18
Use correct TypeckTables when hashing bodies
2019-11-04 20:03:03 -05:00
Evan Stoll
8ca9c237a0
deprecated_lints: re-fix ASSIGN_OPS lint doc-comment
2019-11-02 14:19:25 -04:00
Evan Stoll
9a2c968f9f
deprecated_lints: align doc comment indents with pub LINT_NAME
2019-11-02 14:11:25 -04:00
Evan Stoll
1acea2e4fc
deprecated_lints: remove extraneous declare_deprecated_lint
2019-11-02 14:11:13 -04:00
Michael Wright
4e78547e6f
DecimalLiteralRepresentation
simplification
...
Remove recalculation of literal value.
2019-10-31 09:13:08 +02:00
Evan Stoll
94e35510ae
Fix #4748 - Deprecated lints don't expand
...
- Move doc comments inside of declare_deprecated_lint macros so that they are picked up by lintlib.py
2019-10-30 21:05:23 -04:00
Michael Wright
5ce8990885
Simplify approx const truncation check
2019-10-29 08:34:05 +02:00
Matthias Krüger
ece5f862c4
rustup https://github.com/rust-lang/rust/pull/65792/
2019-10-28 15:15:28 +01:00
flip1995
1e1d45a005
Move manual_mul_add into nursery
2019-10-26 19:57:01 +02:00
bors
bfef48f185
Auto merge of #4721 - phansch:fix_try_err_in_ext_macro, r=flip1995
...
Don't emit try_err lint in external macros
changelog: Fix [`try_err`] false positive in external macros
Closes #4709
2019-10-24 17:53:42 +00:00
flip1995
b2616641d9
Fix dogfood findings
2019-10-24 14:39:19 +02:00
flip1995
562cc63b7e
Fix lint_without_lint_pass lint
2019-10-24 13:54:18 +02:00
flip1995
237e168b89
Fix tests
2019-10-24 13:29:51 +02:00
flip1995
ef02e3a755
Run ./util/dev fmt
2019-10-24 11:55:22 +02:00
flip1995
5f4b5b91d7
Rustup to rust-lang/rust#65657
2019-10-24 11:54:11 +02:00
Mark Rousskov
7e77f3c29f
Update clippy for latest rustc changes
...
Specifically, this revises the clippy integration to utilize a new
callback to register its lints, as the prior editing of lint store in
Session is no longer possible.
2019-10-24 11:40:45 +02:00
Philipp Hansch
52f52900a4
Don't emit try_err lint in external macros
2019-10-24 07:52:01 +02:00
bors
850dfdae60
Auto merge of #4680 - hellow554:debug_assert_mut_call, r=flip1995
...
Add lint for debug_assert_with_mut_call
closes #1526
**What does not work:**
* detecting a mut call in the format string itself, e.g. `debug_assert!(false, "{}", vec![1].pop())`
* detecting `*mut T` usage (pointer)
---
changelog: add new lint `debug_assert_with_mut_call`
2019-10-23 20:58:14 +00:00
bors
087e5eaea5
Auto merge of #4691 - HMPerson1:suggest_iter, r=phansch
...
Fix suggestion of `explicit_counter_loop`
changelog: In the suggestion of `explicit_counter_loop`, if the `for` loop argument doesn't implement `Iterator`, then we suggest `x.into_iter().enumerate()` (or `x.iter{_mut}()` as appropriate). Also, the span of the suggestion has been corrected.
Fixes #4678
2019-10-23 20:12:14 +00:00
Matthias Krüger
b5f73dad90
deps: update cargo_metadata from 0.8.0 to 0.9.0
2019-10-23 17:30:24 +02:00
flip1995
e8d5a9e95c
Use StableHasher in SpanlessHasher
2019-10-22 14:57:44 +02:00
flip1995
ef18ece564
Don't hash spans in SpanlessHasher
2019-10-22 11:17:16 +02:00
Marcel Hellwig
5572476a36
Add lint for debug_assert_with_mut_call
...
This lint will complain when you put a mutable function/method call
inside a `debug_assert` macro, because it will not be executed in
release mode, therefore it will change the execution flow, which is not
wanted.
2019-10-22 10:39:55 +02:00
Lzu Tao
4c7387e965
rustup https://github.com/rust-lang/rust/pull/65535
2019-10-19 12:27:21 +07:00
HMPerson1
a9cb2b9001
Fix suggestion for ranges
2019-10-18 12:11:15 -04:00
Andre Bogus
d723b35aee
Omit proc macros from must_use_candidate
2019-10-18 15:54:25 +02:00
Heinz N. Gies
7f454d8d06
Split out tests
2019-10-18 07:40:48 +02:00
Heinz N. Gies
a7ad78f3eb
Add expect
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-10-18 07:37:58 +02:00
Heinz N. Gies
98dc3aabea
Add todo and tests
2019-10-18 07:37:58 +02:00
Heinz Gies
8d911fe988
add restirction for unreachable and panic
2019-10-18 07:35:25 +02:00
HMPerson1
4578e5e15e
Fix suggestion span in explicit_counter_loop
2019-10-18 01:15:54 -04:00
HMPerson1
72f3439346
Suggest calling iter
if needed in explicit_counter_loop
2019-10-18 00:03:27 -04:00
bors
14a0f36617
Auto merge of #4683 - HMPerson1:inefficient_to_string, r=Manishearth
...
Add `inefficient_to_string` lint
Closes #4586
changelog: Add `inefficient_to_string` lint, which checks for calling `to_string` on `&&str`, which would bypass the `str`'s specialization
2019-10-17 23:48:55 +00:00
Michael Zhang
2106a23966
Update help text in inefficient_to_string
...
Co-Authored-By: Manish Goregaokar <manishsmail@gmail.com>
2019-10-17 19:13:32 -04:00
Manish Goregaokar
fcad3cb9ea
syntax::ext -> syntax_expand
2019-10-17 15:57:48 -07:00
HMPerson1
106a72592c
Dogfood for inefficient_to_string
2019-10-16 17:12:41 -04:00
HMPerson1
76b44f34b9
Add inefficient_to_string
lint
2019-10-16 15:54:20 -04:00
Manish Goregaokar
608d09c26c
Rustup to rustc 1.40.0-nightly (237d54ff6 2019-10-15)
2019-10-15 12:29:28 -07:00
flip1995
c9dc2b5f6e
Fix ICE in use_self lint
2019-10-15 15:11:29 +02:00
James Wang
adf58868e9
Change terminology from static to associated
2019-10-15 09:58:12 +02:00
James Wang
8b50599cb4
Switch to OnlyBodies
2019-10-15 09:58:12 +02:00
James Wang
e23a424b31
Change lint to be pedantic
2019-10-15 09:58:11 +02:00
James Wang
e64b27525b
Remove prints
2019-10-15 09:58:11 +02:00
James Wang
664522badd
Add a new lint for unused self
2019-10-15 09:58:11 +02:00
Andre Bogus
cc622608db
new lints around #[must_use]
fns
...
`must_use_unit` lints unit-returning functions with a `#[must_use]`
attribute, suggesting to remove it.
`double_must_use` lints functions with a plain `#[must_use]`
attribute, but which return a type which is already `#[must_use]`,
so the attribute has no benefit.
`must_use_candidate` is a pedantic lint that lints functions and
methods that return some non-unit type that is not already
`#[must_use]` and suggests to add the annotation.
2019-10-14 12:09:04 +02:00
Matthias Seiffert
15b433af48
Use match_function_call wherever possible
2019-10-10 20:06:04 +02:00
Matthias Seiffert
37a2de1562
Move match_function_call to utils
2019-10-10 10:57:12 +02:00
bors
db233b0920
Auto merge of #4616 - mati865:license, r=Manishearth
...
Fix license in Cargo.toml files
Missed in https://github.com/rust-lang/rust-clippy/pull/3269
changelog: none
r? @Manishearth
2019-10-09 16:09:26 +00:00
Nikos Filippakis
5143fe1a78
New lint: suspicious_unary_op_formatting
...
Lints when, on the RHS of a BinOp, there is a UnOp without a space
before the operator but with a space after (e.g. foo >- 1).
Signed-off-by: Nikos Filippakis <nikolaos.filippakis@cern.ch>
2019-10-09 16:22:00 +02:00
bors
d97fbdbb42
Auto merge of #4635 - Lythenas:suggestions-for-assert-false, r=flip1995
...
Add assert message to suggestion in lint assertions_on_constants
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [x] Followed [lint naming conventions][lint_naming]
- [x] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [x] Executed `./util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `./util/dev fmt`
[lint_naming]: https://rust-lang.github.io/rfcs/0344-conventions-galore.html#lints
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
- [x] suggest replacing `assert!(false, "msg")` with `panic!("msg")`
- [x] extend to allow ~~variables~~ any expression for `"msg"`
- ~~suggest replacing `assert!(false, "msg {}", "arg")` with `panic!("msg {}", "arg")`~~
changelog: add assert message to suggestion in lint assertions_on_constants
Work towards fixing: #3575
2019-10-09 08:56:30 +00:00
Ethan Lam
327c91f8c7
Addresses Issue #4001
...
Fixed typo
Fixes lint name and uses appropriate linting suggestion
changed lint help message
Added autofixable test
Added Autofixable Test
Removed Broken Autofixable File
updated lints
Generated Autofixable/Nonfixable Test Cases
Changed Suggestion Applicability
Updated Lint Count
2019-10-08 08:46:29 -05:00
bors
30a3992e97
Auto merge of #4627 - kerhong:fix-typo-in-inherent-to-string, r=phansch
...
Fix typo in inherent_to_string documentation
A simple typo fix in `inherent_to_string` and `inherent_to_string_shadow_display` documentation
changelog: none
2019-10-08 07:52:44 +00:00
bors
b690cdb1e7
Auto merge of #4611 - rust-lang:doc-visibility, r=flip1995
...
account for doc visibility
This fixes #4608 .
Also I noticed that the lint failed to look at trait and impl items. There's a small bit of fallout in the code, too, but not enough to warrant its own commit.
changelog: check docs of trait items and impl items, also make `missing_safety_doc` account for visibility
2019-10-08 07:11:26 +00:00
bors
e2393b09ac
Auto merge of #4592 - rust-lang:transmute-collection, r=flip1995
...
New lint: `unsound_collection_transmute`
changelog: Add `unsound_collection_transmute` lint
This fixes #4515
2019-10-08 05:51:07 +00:00
Matthias Seiffert
6ee8d751f6
Reduce duplication
2019-10-07 22:08:00 +02:00
Matthias Seiffert
22f057972f
Match any expr for panic message
2019-10-07 20:40:05 +02:00
Matthias Seiffert
d66acc23a9
Make if_chain more readable
2019-10-07 19:13:10 +02:00
Matthias Seiffert
72a5d7b612
Add message to replace assert!(false) help
2019-10-07 19:13:10 +02:00
flip1995
3d39379f9c
Move is_argument check into mutate
2019-10-06 14:49:26 +02:00
flip1995
3aa531c194
Run util/dev fmt
2019-10-05 12:42:09 +02:00
flip1995
3b23092b69
Get rid of rvalue_promotable_map method call
2019-10-05 12:38:38 +02:00
flip1995
b7d473503b
Merge consume and consume_pat in escape analysis
...
FIXME: This doesn't work and probably needs a rewrite of the lint
See https://github.com/rust-lang/rust-clippy/pull/4628#issuecomment-538574944
2019-10-05 12:23:59 +02:00
Mateusz Mikuła
4f1d907462
Use new format of licenses
...
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-04 17:40:32 +02:00
flip1995
c420b07191
Fix needless_pass_by_value
...
This also accidentally improved the spans of the suggestions
2019-10-04 15:39:46 +02:00
flip1995
b46f5b4a98
Rustup to rust-lang/rust#64874
...
Episode 1 - The simple cases
2019-10-04 15:39:46 +02:00
bors
54bf4ffd62
Auto merge of #4613 - Lythenas:lint-assert_eq-unit_exprs, r=flip1995
...
Add check for assert_eq macros to unit_cmp lint
changelog: Add check for unit comparisons through `assert_eq!`, `debug_assert_eq!`, `assert_ne!` and `debug_assert_ne!` macros to unit_cmp lint.
fixes #4481
2019-10-04 10:27:44 +00:00
Edgars Baduns
a1137a8439
Fix typo in inherent_to_string documentation
2019-10-04 10:58:53 +01:00
bors
249b6cac3e
Auto merge of #4625 - phansch:rollup-qp7ki0h, r=phansch
...
Rollup of 2 pull requests
Successful merges:
- #4509 (Fix false-positive of redundant_clone and move to clippy::perf)
- #4614 (Allow casts from the result of `abs` to unsigned)
Failed merges:
changelog: none
r? @ghost
2019-10-04 06:45:04 +00:00
Phil Hansch
19c58d260b
Rollup merge of #4614 - HMPerson1:abs_cast_unsigned, r=flip1995
...
Allow casts from the result of `abs` to unsigned
changelog: Allow casts from the result of `abs` to unsigned in `cast_sign_loss`
Fixes #4605
2019-10-04 08:08:59 +02:00
Matthias Seiffert
e333ed0d53
Correctly align doc of mistyped literal suffixes
2019-10-03 22:14:32 +02:00
Matthias Seiffert
5a0a2b383c
Remove assert_ne example from doc
2019-10-03 19:53:41 +02:00
Matthias Seiffert
fb25d56799
Mention asserts in doc for unit_cmp lint
2019-10-03 14:35:05 +02:00
Matthias Seiffert
288f02da44
Print assert macro name in backticks
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-10-03 11:43:39 +02:00
Shotaro Yamada
4cded6d901
extern rustc_index
2019-10-03 08:27:47 +09:00
Shotaro Yamada
866729f5db
Add comments
2019-10-03 08:10:29 +09:00
Shotaro Yamada
1cee3fe00e
Resolve reviews
2019-10-03 08:10:29 +09:00
Shotaro Yamada
a3f403aa50
Apply suggestion
...
Co-Authored-By: ecstatic-morse <ecstaticmorse@gmail.com>
2019-10-03 08:10:29 +09:00
Shotaro Yamada
667223c35d
Add run-rustfix
2019-10-03 08:10:29 +09:00
Shotaro Yamada
301ef6bb2a
Fix false-positive of redundant_clone and move to clippy::perf
2019-10-03 08:10:29 +09:00
HMPerson1
0e1dd65c14
Allow casts from the result of abs
to unsigned
2019-10-02 17:23:54 -04:00
Matthias Seiffert
3557084b01
Add check for assert_eq macros to unit_cmp lint
2019-10-02 22:48:19 +02:00
Andre Bogus
27fa2b7944
New lint: unsound_collection_transmute
2019-10-02 21:18:00 +02:00
Andre Bogus
e3f143ff0a
account for doc visibility
2019-10-02 21:15:28 +02:00
bors
737f0a6bb5
Auto merge of #4599 - lzutao:zero-ptr-suggestion, r=flip1995
...
Add suggestion for zero-ptr lint
changelog: Improve suggestion of `zero_ptr` lint
2019-10-02 17:16:29 +00:00
Lzu Tao
6b1a8683f4
Add suggestion for zero-ptr lint
2019-10-02 22:38:00 +07:00
Andre Bogus
23a9c02120
New lint: needless_doc_main
2019-10-02 17:17:22 +02:00
flip1995
93bda4876a
Fix ICE #4579
2019-10-02 09:39:04 +02:00
Manish Goregaokar
9e166e09b8
Use new spans for expansion checking in loop lints
2019-10-01 10:17:29 -07:00
Lzu Tao
aa4f3fb537
Clean up some unused vars
2019-09-29 23:46:32 +07:00
Lzu Tao
6e3a0ea6b3
Rustup rust-lang/rust#63492
2019-09-29 22:58:17 +07:00
bors
fe920ebf8b
Auto merge of #4593 - james9909:fix-multiple-inherent-impls, r=llogiq
...
Fix false positive in `multiple_inherent_impl`
changelog: Fix false positive in `multiple_inherent_impl` by ignoring impls derived from macros.
Closes #4578 .
2019-09-29 06:21:55 +00:00
Matthias Krüger
5f6e3f35b5
rustup https://github.com/rust-lang/rust/pull/64781/
...
cc https://github.com/rust-lang/rust/issues/64867
2019-09-28 10:42:41 +02:00
James Wang
189eaa54c6
Ignore impls derived from macros
2019-09-27 20:47:00 -05:00
flip1995
8d8ba14371
Fix author lint
2019-09-27 18:01:04 +02:00
flip1995
4bbd10a585
Rustup to rust-lang/rust#64813
2019-09-27 17:21:20 +02:00
Michael Wright
8b9415cd88
Refactor booleans
...
Remove unused output from `suggest(..)`
2019-09-27 07:59:34 +02:00
Michael Sproul
4f9d6eea5c
Detect assignment ops in integer_arithmetic
2019-09-27 11:55:42 +10:00
Matthias Krüger
e59d619981
rustup https://github.com/rust-lang/rust/pull/64515
...
changelog: none
2019-09-26 18:34:43 +02:00
Lzu Tao
54371929d2
Remove unused import
2019-09-26 16:08:30 +07:00
Lzu Tao
a7b7e19f49
Rustup https://github.com/rust-lang/rust/pull/64513
2019-09-26 16:03:36 +07:00
bors
adc1df11b4
Auto merge of #4568 - mikerite:fix-4548, r=flip1995
...
Fix `nonminimal-bool` false positive
Closes #4548
Closes #3847
changelog: Fix `nonminimal-bool` false positive
2019-09-26 08:06:16 +00:00
bors
4d30b08027
Auto merge of #4569 - james9909:add-comparison-chain, r=oli-obk
...
Add a new lint for comparison chains
changelog: Adds a new lint: `comparison_chain`.
`comparison_chain` lints all `if` conditional chains where all the conditions are binary comparisons on the same two operands and will suggest a rewrite with `match`.
Closes #4531 .
2019-09-26 07:38:08 +00:00
Lzu Tao
08ce6bc6d9
Fix macro expansion in toplevel_ref_arg lint
2019-09-26 08:46:51 +07:00
Manish Goregaokar
49374a4380
Downgrade op_ref to a MaybeIncorrect suggestion
2019-09-25 14:53:48 -07:00
Manish Goregaokar
d28dacb33a
redundant_pattern_matching: make rustfixable
2019-09-25 14:45:18 -07:00
Manish Goregaokar
a83a8dccba
redundant_closure_call: split tests into fixable
2019-09-25 14:45:18 -07:00
Manish Goregaokar
ad0e7c8e7f
map_unit_fn: fix applicability
2019-09-25 14:45:18 -07:00
Manish Goregaokar
1090509564
non_copy_const: remove incorrect suggestion
2019-09-25 14:45:18 -07:00
Manish Goregaokar
980650eec2
needless_collect: fix suggestion, make test rustfixable
2019-09-25 14:45:18 -07:00
Manish Goregaokar
7f822e742d
needless_borrowed_ref: fix false positive, make rustfixable
2019-09-25 14:45:18 -07:00
Manish Goregaokar
4368771548
map_entry test: Fix semicolon, add run-rustfix
2019-09-25 14:45:18 -07:00
Manish Goregaokar
d445bf2e89
Remove suggestion for complex map_entry cases
2019-09-25 13:54:53 -07:00
Manish Goregaokar
b5cadd734e
ignore single-match for or patterns
2019-09-25 13:34:55 -07:00
Manish Goregaokar
982c51e769
arm.pats -> arm.pat
2019-09-25 12:52:16 -07:00
Michael Wright
89cdd26e71
Refactor booleans
...
Inline `snip (..)` function
2019-09-25 06:40:04 +02:00
James Wang
2f34576c18
Update refactor according to code review
2019-09-24 19:07:03 -05:00
James Wang
7e8afe2001
Fix example in docs
2019-09-24 17:05:43 -05:00
James Wang
52408f5b7d
Add a new lint for comparison chains
2019-09-24 16:55:05 -05:00
Michael Wright
0cc48ad9f9
Fix nonminimal-bool
false positive
...
Closes #4548
Closes #3847
2019-09-24 08:13:50 +02:00
Andre Bogus
2b7514154d
Fix let_and_return lint
2019-09-23 09:17:18 +02:00
Michael Wright
ca6d36ba22
Merge branch 'master' into unneeded_wildcard_pattern
2019-09-23 05:26:47 +02:00
Cyril Plisko
4c881d108a
clippy::cargo_common_metadata: check for license-file
...
When license property is missing in Cargo.toml check for license-file
as it may be used instead of the former. The check implemented here is
very naive as it only verifies that the field is present and is not
empty. More scrutiny can be applied by verifying the file is actually
present.
Fixes #4517
2019-09-22 10:49:36 +03:00
Michael Wright
d04bf15114
Merge branch 'master' into unneeded_wildcard_pattern
2019-09-22 08:59:23 +02:00
bors
f21cd81949
Auto merge of #4558 - Manishearth:suggestions, r=phansch
...
Make more tests rustfixable
changelog: Fix various lint suggestions
Progress towards https://github.com/rust-lang/rust-clippy/issues/3630
r? @phansch
2019-09-21 01:01:21 +00:00
Manish Goregaokar
bbfb9a49e3
for_loop: Split test into fixable/unfixable, make needless_range_loop use updated range syntax
2019-09-21 10:01:06 +09:00
Manish Goregaokar
fa969762a4
assign_ops: Remove MachineApplicable
2019-09-20 14:51:28 +09:00
Andre Bogus
8d884c8a1a
new lint: mem-replace-with-uninit
2019-09-20 00:25:57 +02:00
bors
cdaa93d695
Auto merge of #4544 - JoshMcguigan:issue-4542, r=flip1995
...
#4542 remove machine applicable suggestion
This helps #4542 (but does not completely resolve) by removing the machine applicable suggestion (which was incorrect) for that case.
I would have preferred to fix the machine applicable suggestion to handle format strings, but that's a bit beyond my current understanding of the clippy codebase. I'd be happy to give it a try given some guidance.
changelog: only produce machine applicable suggestions on `explicit_write` lint
2019-09-19 09:28:29 +00:00
bors
f08f171530
Auto merge of #4539 - jolson88:cast-lossless-pedantic, r=flip1995
...
Changes cast-lossless to a pedantic lint
As discussed in #4528 , this moves the cast-lossless lint from `all` to `pedantic`.
I couldn't tell from description alone if it should also be removed from the complexity category, so I left it as part of complexity for now. I didn't see any impact to the tests from this change, but I could be wrong (as this is my first PR).
fixes #4528
changelog: Moves cast-lossless from default to checking only as a `pedantic` lint.
2019-09-19 08:50:31 +00:00
Andre Bogus
70a7dab773
New lint: Require # Safety
section in pub unsafe fn docs
2019-09-19 09:19:55 +02:00
Michael Wright
16ce071bed
Work around qpath_res issue
2019-09-18 21:57:14 +02:00
Josh Mcguigan
24ec994001
remove machine applicable suggestion explicit_write format #4542
2019-09-18 01:59:58 -07:00
mikerite
fed1709f46
Add note about refactoring
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-09-18 06:48:47 +02:00
Jason Olson
6f1f413717
Changes cast-lossless to a pedantic lint
...
Fixes #4528
2019-09-15 10:32:45 -07:00
Jason Olson
80822b430d
Convert to Place's new boxed slice projection
...
Fixes breaking change from rust-lang PR https://github.com/rust-lang/rust/pull/63420/
2019-09-13 18:49:11 -07:00
Michael Wright
99be5221bc
Apply review suggestions
...
Fix grammar errors and use `Pat::is_rest` instead of own function.
2019-09-13 08:31:24 +02:00
Michael Wright
00ca42fe5b
Fix lint warnings
2019-09-12 08:36:05 +02:00
Michael Wright
4a3bc6b592
Add unneeded-wildcard-pattern
lint
2019-09-12 08:25:05 +02:00
bors
6ca5b2053a
Auto merge of #4478 - tsurai:master, r=flip1995
...
Fix incorrect swap suggestion
Clippy suggests using swap on fields belonging to the same owner causing two mutable borrows of the owner.
Disclosure: This is my first time working with clippy and rusts HIR. I'm very grateful for assistance and suggestions to improve the PR.
fixes #981
changelog: Fix false positive in `manual_swap` lint
2019-09-11 09:48:25 +00:00
Matthias Krüger
b72982759c
run rustfmt
2019-09-11 08:26:57 +02:00
bors
12bb7d668d
Auto merge of #4532 - rust-lang:integer-const, r=oli-obk
...
New `is_integer_const` to check more const ints
This mostly affects loop checks and the modulo_one lint. Tests were also updated where applicable.
changelog: none
2019-09-10 19:40:45 +00:00
Andre Bogus
5823e9468d
New is_integer_const
to check more const ints
...
This mostly affects loop checks and the modulo_one lint. Tests
were also updated where applicable.
2019-09-10 17:46:39 +02:00
bors
c53d2b824e
Auto merge of #4525 - mikerite:use-self-constructor, r=phansch
...
Extend `use_self` to check constructor
Rust did not allow this before.
changelog: Extend `use_self` to check constructor
2019-09-10 07:32:11 +00:00
Lzu Tao
b4d7f04a1d
Remove feature gate bind-by-move
2019-09-10 09:23:25 +07:00
bors
4ee8bc84cd
Auto merge of #4527 - rust-lang:more-vec-diag-items, r=oli-obk
...
Changed more `Vec` paths to diagnostic_items
In #4519 , I missed a few instances of path matching for `Vec`, so here they are.
r? @oli-obk
changelog: none
2019-09-09 16:56:51 +00:00
bors
c733376a5f
Auto merge of #4522 - mikerite:fix-4514, r=phansch
...
Fix `or_fun_call` bad suggestion
Closes #4514
changelog: Fix `or_fun_call` bad suggestion
2019-09-09 15:38:59 +00:00
Andre Bogus
507c03a859
Changed more Vec paths to diagnostic_items
2019-09-09 17:22:41 +02:00
bors
8af4e09605
Auto merge of #4458 - flip1995:block_in_if_ext_macro, r=phansch
...
Allow block_in_if_{stmt,expr} in external macro
I found this by running `cargo fix --clippy` on quite a big codebase.
You could refactor this assert to
```rust
let block_expr = _;
assert!(block_expr);
```
but,
1. it doesn't increase the readability IMO
2. That isn't possible in a `debug_assert!`
I'm not sure though, if we should allow this for macros in general or just for external macros.
changelog: Allow `block_in_if_{stmt,expr}` in external macros
2019-09-09 14:55:33 +00:00
Lzu Tao
a5f4d3ce29
Fix regression in case of proc-macro attribute expansion
2019-09-09 16:14:32 +07:00
Michael Wright
31fbff2a36
Extend use_self
to check constructor
...
Rust did not allow this before.
2019-09-09 07:51:44 +02:00
Michael Wright
f88c224d82
Merge branch 'master' into fix-4514
2019-09-09 07:36:30 +02:00
Andre Bogus
e3c4ffd4aa
Use diagnostic item for
2019-09-09 05:43:39 +02:00
Matthew Jasper
5e7ff6b705
Update non_expressive_names for or patterns
2019-09-08 16:27:54 +01:00
Matthew Jasper
a2477f7759
Remove use of the HIR CFG
2019-09-08 16:27:54 +01:00
Michael Wright
9bdfd0683f
Fix or_fun_call
bad suggestion
...
Closes #4514
2019-09-08 11:03:45 +02:00
bors
f30bf69ec7
Auto merge of #4508 - rust-lang:reduced-symbolism, r=phansch
...
Simplify `utils::match_def_path`, removing a FIXME
changelog: none
This removes the `Vec<Symbol>` allocation. We still need to call `cx.get_def_path`, but this should already have been interned, and I don't see how we can keep ergonomics of that function without allocating a `Vec`.
r? @phansch
2019-09-06 15:10:06 +00:00
Mateusz Mikuła
5afa216e30
Rustup to rust-lang/rust#64111
2019-09-06 13:57:27 +02:00
bors
9672a0400c
Auto merge of #4500 - jeremystucki:refactoring, r=flip1995
...
Small refactoring
changelog: none
2019-09-06 08:41:56 +00:00
Andre Bogus
72058a6d0d
Simplify , removing a FIXME
2019-09-06 09:40:36 +02:00
bors
313b41fac5
Auto merge of #4489 - JohnTitor:fix-redundant-pattern-false-positive, r=flip1995
...
Fix `redundant_pattern` false positive
Fix #4428
changelog: Fix `redundant_pattern` false positive
2019-09-05 16:15:36 +00:00
Lzu Tao
c12b700e87
Rustup "Minimize uses of LocalInternedString
"
2019-09-05 07:16:57 +00:00
bors
e3ae76aeac
Auto merge of #4495 - JohnTitor:fix-map-entry-false-positive, r=phansch
...
Fix `map_entry` false positive
Fixes #4219
changelog: Fix `map_entry` false positive
2019-09-04 16:25:49 +00:00
Yuki Okushi
8be37fdb1d
Make it auto fixable lint
2019-09-05 00:50:22 +09:00
Yuki Okushi
e236740f28
Fix redundant_pattern
false positive
2019-09-05 00:36:48 +09:00
bors
98a25241cc
Auto merge of #4487 - JohnTitor:deref-addrof-external-macro, r=flip1995
...
Don't check across macro boundary in `deref_addrof`
Fixes #4289
changelog: Allow `deref_addrof` in macros
2019-09-04 15:01:06 +00:00
Jeremy Stucki
3fc1ec1ffd
Refactor option handling
2019-09-04 16:19:59 +02:00
bors
9d2772207e
Auto merge of #4418 - euclio:byte-lit-suggestion, r=flip1995
...
use a structured suggestion for char-lit-as-u8
changelog: use a structured suggestion for char-lit-as-u8
2019-09-04 13:33:47 +00:00
Andy Russell
4ea246b0b3
use a structured suggestion for char-lit-as-u8
2019-09-04 08:50:55 -04:00
bors
ffe57fad85
Auto merge of #4498 - sinkuu:checked_arithmetic_unwrap, r=flip1995
...
Add manual_saturating_arithmetic lint
changelog: add `manual_saturating_arithmetic` lint
Fixes #1557 . This lint detects manual saturating arithmetics like `x.checked_add(10u32).unwrap_or(u32::max_value())` and suggests replacing with `x.saturating_add(10u32)`.
2019-09-04 12:14:41 +00:00
Shotaro Yamada
c6fb9c8a2a
Hide variables in doc-test
2019-09-04 21:10:08 +09:00
Shotaro Yamada
45fde0f86f
Fix doctest and renaming src
2019-09-04 21:06:28 +09:00
bors
a2c4b2b8da
Auto merge of #4490 - mikerite:fix-4364, r=flip1995
...
Fix `too_many_lines` false positive
changelog: Fix `too_many_lines` false positive
2019-09-04 11:35:13 +00:00
Shotaro Yamada
4960f79476
Add manual_saturating_arithmetic lint
2019-09-04 18:38:25 +09:00
bors
8239b7616f
Auto merge of #4454 - BO41:search_is_some, r=flip1995
...
Dereference one less on search_is_some and make it auto-fixable
Fixes #4453
changelog: none
2019-09-04 07:53:44 +00:00
BO41
64cd9e4d60
Try to fix .fixed
2019-09-03 18:56:23 +02:00
bors
11da8c18a2
Auto merge of #4479 - rust-lang:uninit_assume_init, r=flip1995
...
lint against `MaybeUninit::uninit().assume_init()`
changelog: add `uninit_assumed_init` lint
This fixes #4272
2019-09-03 16:14:40 +00:00
Andre Bogus
b01f2d1126
lint against MaybeUninit::uninit().assume_init()
2019-09-03 17:37:38 +02:00
bors
aeadf1562c
Auto merge of #4486 - lzutao:fix-panic-unseparate-literals, r=flip1995
...
Fix index out of bound in case of empty snippet
cc #4480
changelog: none
2019-09-03 13:17:30 +00:00
Yuki Okushi
c94c5e9048
Fix map_entry
false positive
2019-09-03 20:31:02 +09:00
bors
2d7da04e17
Auto merge of #4493 - JohnTitor:fix-build-bytes, r=flip1995
...
Rustup to rust-lang/rust#63561
changelog: none
2019-09-03 10:44:47 +00:00
Yuki Okushi
7d30cb6e76
Remove Allocation::bytes
2019-09-03 18:29:08 +09:00
Michael Wright
232dd43fe9
Fix occurrences of too_many_lines
violations
2019-09-03 06:26:49 +02:00
Michael Wright
0ae1a69330
Fix too_many_lines
false positive
...
Fixes #4364
2019-09-03 06:25:54 +02:00
Yuki Okushi
9a5b996228
Allow deref_addrof in macros
2019-09-03 00:17:23 +09:00
Lzu Tao
17d445b66d
Fix index out of bound in case of empty snippet
2019-09-02 20:38:40 +07:00
bors
1f9993729b
Auto merge of #4482 - awoimbee:doc_explicit_counter_loop, r=flip1995
...
fix misleading doc for explicit_counter_loop lint
changelog: replace misleading examples for explicit_counter_loop & more concise `Why is it bad?` section
This fixes #4472
2019-09-02 12:46:13 +00:00
Arthur Woimée
223e23a5ce
fix misleading doc for explicit_counter_loop lint
2019-09-01 21:54:47 +02:00
Michael Wright
2fdfd60569
Fix needless_lifetimes
false positive
2019-09-01 08:11:40 +02:00
Cristian Kubis
8bc1ded805
Fix incorrect swap suggestion
...
Clippy suggests using swap on fields belonging to the same owner
causing two mutable borrows of the owner
Fixes #981
Signed-off-by: Cristian Kubis <cristian.kubis@tsunix.de>
2019-08-31 18:53:14 +02:00
Michael Wright
88750f9ad7
Fix extra_unused_lifetimes
false positive
...
Fixes #4291
2019-08-31 08:16:04 +02:00
bors
a3fcaee562
Auto merge of #4473 - phansch:fix_cast_lossless_fp, r=flip1995
...
Fix cast_lossless false positive in impl const fn
Fixes https://github.com/rust-lang/rust-clippy/issues/3656#issuecomment-526387382
changelog: Fix false positive in `cast_lossless`
2019-08-30 20:30:53 +00:00
flip1995
3c11406c1f
Rustup to rust-lang/rust#60966
2019-08-30 10:11:27 +02:00
bors
2bff3d87d5
Auto merge of #4446 - mikerite:fix-4437, r=phansch
...
Fix `match_as_ref` bad suggestion
Fixes #4437
changelog: Fix `match_as_ref` bad suggestion
2019-08-30 06:07:41 +00:00
Philipp Hansch
fb1ae1747f
Fix cast_lossless false positive in impl const fn
...
Fixes https://github.com/rust-lang/rust-clippy/issues/3656#issuecomment-526387382
2019-08-30 07:22:35 +02:00
bors
28a8a6a483
Auto merge of #4450 - phansch:fix_const_fn_fp, r=flip1995
...
Fix missing_const_for_fn false positive
We don't want to lint if the type of the method implements drop.
(constant functions cannot evaluate destructors)
changelog: Fix `missing_const_for_fn` false positive
Fixes #4449
2019-08-29 17:24:21 +00:00
flip1995
dac81d867b
Use the spans returned by utils::method_calls
2019-08-29 17:34:03 +02:00
flip1995
832c0830ec
Also return the method spans in utils::method_calls
2019-08-29 17:34:02 +02:00
BO41
945d4cf69f
Dereference one less on search_is_some and make it auto-fixable
2019-08-29 17:34:02 +02:00
bors
888b736560
Auto merge of #4408 - phansch:more_rustfix_tests, r=flip1995
...
More rustfix tests
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `./util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `./util/dev fmt`
[lint_naming]: https://rust-lang.github.io/rfcs/0344-conventions-galore.html#lints
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
cc #3630
This is probably easier reviewed per-commit.
changelog: none
2019-08-29 10:48:14 +00:00
Victor Polevoy
87ef86ef5a
Improve cognitive_complexity lint's warning.
...
Adds the value of complexity limit set for the lint
to the warning.
Fixes #4466
Signed-off-by: Victor Polevoy <fx@thefx.co>
2019-08-29 11:54:18 +02:00
Michael Wright
0c8332558b
Merge branch 'master' into fix-4437
2019-08-29 08:17:36 +02:00
Philipp Hansch
1b18597554
Fix missing_const_for_fn false positive
...
We don't want to lint if any of the input parameters implement drop.
(constant functions cannot evaluate destructors)
2019-08-29 08:07:41 +02:00
Philipp Hansch
eeeadf30bf
Make useless_attribute suggestion MaybeIncorrect
2019-08-28 21:17:12 +02:00
Philipp Krones
236666138f
Rollup merge of #4460 - JohnTitor:fix-inherent-to-string, r=flip1995
...
Fix `inherent_to_string` false positive
Fixes #4457
changelog: fixes `inherent_to_string` false positive
2019-08-28 13:00:52 +02:00
Yuki Okushi
2c282252a9
Replace Arg
with Param
2019-08-28 18:33:25 +09:00
Philipp Hansch
f41677902d
Update int_plus_one suggestion text
...
This is now in line with the recommendations from here:
https://doc.rust-lang.org/nightly/nightly-rustc/rustc_errors/struct.Diagnostic.html#method.span_suggestion
2019-08-28 07:29:30 +02:00
Philipp Hansch
31cf2f2f35
Change float_cmp Applicability to HasPlaceholders
...
The suggestion includes an 'errors' placeholder currently, so it's not
`MachineApplicable`
2019-08-28 07:23:23 +02:00
Yuki Okushi
1dca950ac4
Fix inherent_to_string
false positive
2019-08-28 06:46:26 +09:00
flip1995
d36c785344
Allow block_in_if_{stmt,expr} in external macro
2019-08-27 09:43:03 +02:00
bors
fea888f2ec
Auto merge of #4445 - phansch:fix_unused_unit_sugg, r=flip1995
...
Fix unused_unit false positive
changelog: Fix `unused_unit` false positive
For some reason the `expr` of `stmt.node` didn't contain the expansion information, but the `stmt.span` does.
Fixes #4076
2019-08-26 13:29:01 +00:00
bors
f760088820
Auto merge of #4430 - lzutao:defid_trait_alias, r=flip1995
...
Account for trait alias when looking for defid
I hit the crash on the `expect` call when running clippy on rustc libcore.
Hopefully this will fix it.
changelog: none
2019-08-26 12:46:00 +00:00
bors
ba6681300e
Auto merge of #4436 - BO41:written_as, r=phansch
...
Add some "could be written as" examples
fixes #4405
changelog: none
2019-08-26 11:11:57 +00:00
Lzu Tao
c1a4b26406
Cleaner code for unsep literals
2019-08-26 16:11:43 +07:00
Lzu Tao
dac2509bac
Account for trait alias when looking for defid
2019-08-25 20:36:11 +07:00
Philipp Hansch
818b2ccfc5
Rustup to https://github.com/rust-lang/rust/pull/63854
2019-08-25 08:06:32 +02:00
Michael Wright
23336adf84
Fix match_as_ref
bad suggestion
...
Fixes #4437
2019-08-25 07:10:45 +02:00
Philipp Hansch
957dedb11d
Fix unused_unit false positive
...
Fixes #4076
2019-08-24 22:09:02 +02:00
BO41
31a6ab47e1
Fix lint doc
2019-08-24 13:57:25 +02:00
bors
2bcb615594
Auto merge of #4443 - jeremystucki:methods-refactoring, r=phansch
...
Small refactoring of methods/mod.rs
changelog: none
2019-08-24 07:45:29 +00:00
Jeremy Stucki
2da8288433
Refactor some minor things
2019-08-23 22:52:04 +02:00
Jeremy Stucki
907aebcf8b
Use more if-chains
2019-08-23 22:51:44 +02:00
Jeremy Stucki
4130dfba2e
Refactor 'lint_or_fun_call'
2019-08-23 22:31:22 +02:00
Jeremy Stucki
419c87fb35
Refactor 'check_unwrap_or_default'
2019-08-23 14:36:00 +02:00
Jeremy Stucki
1436fea271
Refactor 'check_impl_item'
2019-08-23 14:20:55 +02:00
Lzu Tao
5b367ed4a3
Add missing field to LitKind::Str
2019-08-23 18:02:13 +07:00
Lzu Tao
f717a77ecc
Re-add false positive check
2019-08-23 09:16:50 +00:00
Lzu Tao
ce2d2920ef
Add raw string regression test for useless_format lint
2019-08-23 09:16:50 +00:00
Lzu Tao
09d302a786
Re-factor useless_format lint
2019-08-23 09:16:50 +00:00
Lzu Tao
4134e608c5
Update Unicode lint tests
2019-08-23 05:42:45 +00:00
BO41
eebb7cd839
Add examples to some complexity lints
2019-08-22 15:41:07 +02:00
BO41
3f56cb5d8b
Add example to a perf lint
2019-08-22 15:41:07 +02:00
BO41
43a2ba34e6
Add examples to some correctness lints
2019-08-22 15:41:07 +02:00
bors
57c67a29d2
Auto merge of #4352 - phansch:fix_redundant_pattern_matching, r=flip1995
...
Fix some suggestions for redundant_pattern_matching
.. and change the Applicability to `MaybeIncorrect`.
Fixes the problem displayed in https://github.com/rust-lang/rust-clippy/issues/4344#issuecomment-519206388 .
We now append `{}` to the suggestion so that the conditional has the
correct syntax again.
(If we were to _remove_ the `if` instead, it would trigger the
`unused_must_use` warning for `#[must_use]` types.)
changelog: Fix some suggestions for `redundant_pattern_matching`
2019-08-21 08:15:36 +00:00
Michael Wright
59893bcab0
Fix temporary_cstring_as_ptr
false negative
...
Fixes #4375 .
Changes the check to test when `.unwrap().as_ptr()` is called on any
`Result<CString, _>` as suggested by @flip1995
(https://github.com/rust-lang/rust-clippy/issues/4375#issuecomment-520724123 ).
2019-08-21 07:35:04 +02:00
Philipp Hansch
0d85d7e60f
Fix suggestions for redundant_pattern_matching
...
Fixes the problem displayed in https://github.com/rust-lang/rust-clippy/issues/4344#issuecomment-519206388 .
We now append `{}` to the suggestion so that the conditional has the
correct syntax again.
(If we were to _remove_ the `if` instead, it would trigger the
`unused_must_use` warning for `#[must_use]` types.
2019-08-21 07:29:44 +02:00
bors
835205b8da
Auto merge of #4401 - JJJollyjim:literal-separation-suggestion, r=flip1995
...
Add autofixable suggestion for unseparated integer literal suffixes
changelog: Add autofixable suggestion for unseparated integer literal suffixes
Somewhat WIP, since I haven't been able to get this working when adding `// run-rustfix` to `ui/literals.rs`. I think the issue is that there are multiple suggestions operating on one numerical literal, and I'm not sure what the best approach is to work around that.
Thanks
2019-08-20 07:54:25 +00:00
Philipp Hansch
1055cf5b9f
Merge pull request #4416 from SimonSapin/plugin
...
Import rustc_plugin from its new location
2019-08-20 07:28:59 +02:00
KRAAI, MATTHEW [VISUS]
eaf8f08390
Restore en dashes
2019-08-19 12:38:33 -07:00
KRAAI, MATTHEW [VISUS]
204b2f3658
Remove in_macro_or_desugar
2019-08-19 09:30:32 -07:00
Simon Sapin
08d8ffc6a9
Import rustc_plugin from its new location
...
Depends on https://github.com/rust-lang/rust/pull/62727
2019-08-19 17:52:10 +02:00
bors
5c71c1b838
Auto merge of #4411 - mikerite:fix-4384, r=flip1995
...
Fix `clone_on_copy` false positives
Closes #4384
changelog: Fix `clone_on_copy` false positives
2019-08-19 08:04:12 +00:00
Michael Wright
68a1af540c
Fix clone_on_copy
false positives
...
Closes #4384
2019-08-19 08:19:54 +02:00
Lzu Tao
7065239da5
Add option_and_then_some lint
2019-08-19 03:54:40 +00:00
Jamie McClymont
4ee9d02efa
Requested changes
2019-08-19 14:20:38 +12:00
bors
f01a0c0e08
Auto merge of #4403 - xd009642:type_repetition_improvements, r=phansch,flip1995
...
Improvements to `type_repetition_in_bounds`
Improvements to the `type_repetition_in_bounds` trait based on feedback from #4380 #4326 #4323
Currently just make it pedantic. Hopefully, more to come
changelog: move `type_repetition_in_bounds` to `pedantic`
2019-08-18 21:03:21 +00:00
bors
6668e629ba
Auto merge of #4404 - BO41:patch-1, r=flip1995
...
Add "could be written as" example to MANUAL_MEMCPY
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `./util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `./util/dev fmt`
[lint_naming]: https://rust-lang.github.io/rfcs/0344-conventions-galore.html#lints
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
changelog: none
2019-08-18 20:34:25 +00:00
xd009642
76598adafb
Run update_lints
2019-08-18 16:59:31 +01:00
Jeremy Stucki
9c39c02b75
Change lint type to 'complexity'
2019-08-18 16:49:11 +02:00
Jamie McClymont
c8fb62148e
Add autofixable suggestion for unseparated integer literal suffices
2019-08-19 02:46:12 +12:00
Jeremy Stucki
5df84f2192
Merge branch 'origin/master' into suspicious_map
2019-08-18 16:37:31 +02:00
Michael Wright
b313d25350
Fix breakage due to rust-lang/rust#61708
2019-08-18 13:14:47 +02:00
Lzu Tao
533bdfbdbc
Fix assertions_on_constants lint
2019-08-18 02:34:30 +07:00
Lzu Tao
439284b584
Make code cleaner and more readable
2019-08-18 01:47:45 +07:00
BO41
b17cb32bcb
Add "could be written as" example to MANUAL_MEMCPY
2019-08-17 13:09:03 +00:00
xd009642
c1e57402d3
Made lint pedantic
2019-08-17 11:45:05 +01:00
bors
49dff2c9f3
Auto merge of #4397 - kraai:remove-a, r=flip1995
...
Remove "a" from single_match_else description
changelog: none
2019-08-16 20:04:39 +00:00
flip1995
2456b355f2
Run rustfmt
2019-08-16 19:05:44 +02:00
KRAAI, MATTHEW [VISUS]
f74d9db7f4
Use outer_expn_data instead of outer_expn_info
2019-08-16 09:31:12 -07:00
KRAAI, MATTHEW [VISUS]
a68abc03a2
Remove "a" from single_match_else description
2019-08-16 05:41:35 -07:00
Lzu Tao
65b906a8fc
Rustup "Remove Spanned
from {ast,hir}::FieldPat
"
2019-08-16 09:32:27 +07:00
Jeremy Stucki
f4f31a4ff4
Implement lint 'suspicious_map'
2019-08-15 22:58:32 +02:00
bors
607b8299c5
Auto merge of #4382 - jeremystucki:unnecessary_fold_span, r=flip1995
...
Change span of unnecessary_fold lint
Resolves #4381
changelog: Change linted span of `unnecessary_fold`
2019-08-15 12:57:51 +00:00
bors
a3da66d6d3
Auto merge of #4348 - phansch:deprecate-unused-unused-collect, r=flip1995
...
Deprecate unused_collect lint
I found this because we only had two test cases in total for this lint.
It turns out the functionality is fully covered by rustc these days.
[Playground Examples](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8ee6db389c77180c9fb152d3c608f4 )
changelog: Deprecate `unused_collect` lint. This is fully covered by rustc's `#[must_use]` on `collect`
cc #2846
2019-08-15 10:47:20 +00:00
flip1995
9533fa5b19
Rustup to rust-lang/rust#63543
2019-08-15 10:14:06 +02:00
Philipp Hansch
42f03539ca
Deprecate unused_collect lint
...
I found this because we only had two test cases in total for this lint.
It turns out the functionality is fully covered by rustc these days.
[Playground Examples](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8ee6db389c77180c9fb152d3c608f4 )
changelog: Deprecate `unused_collect` lint. This is fully covered by
rustc's `#[must_use]` on `collect`
cc #2846
2019-08-14 21:47:11 +02:00
Jeremy Stucki
fdf82eb1a8
Remove unused import
2019-08-14 20:24:05 +02:00
Jeremy Stucki
08f658bc72
Use different span
2019-08-14 19:35:06 +02:00
bors
06430e7af4
Auto merge of #4363 - phansch:fix_lint_deprecation, r=flip1995
...
Update lint deprecation for tool lints
changelog: Allow tool lints (`clippy::*`) to be deprecated
Our lint deprecation previously didn't work for tool lints, because
`register_removed` was registering lints to be removed _without_ the
`clippy` prefix.
Fixes #4349
2019-08-14 11:37:10 +00:00
bors
63d2d066f9
Auto merge of #4369 - mikerite:fix-4293, r=flip1995
...
Fix `wrong_self_convention` issue
Resolves #4293
changelog: Fix `wrong_self_convention` issue
2019-08-14 10:59:36 +00:00
Jeremy Stucki
2bfcf89f82
Merge branch 'origin/master' into flat-map
2019-08-14 07:36:37 +02:00
Jeremy Stucki
d578c43c51
Use correct span
2019-08-13 21:50:42 +02:00
Jeremy Stucki
4275d7b6ac
Run 'update_lints'
2019-08-12 21:47:12 +02:00
Jeremy Stucki
d51136d594
Use 'span_lint_and_sugg'
2019-08-12 21:42:57 +02:00
Jeremy Stucki
3a65e4e75a
Minor refactoring
2019-08-12 21:29:33 +02:00
Philipp Hansch
b50c13c578
Fix invalid_ref deprecation
2019-08-12 19:42:23 +02:00
Philipp Hansch
0b7e2376c8
Keep old deprecated lints deprecated as non-tool, too
2019-08-12 19:42:23 +02:00
Philipp Hansch
5114050839
Update lint deprecation for tool lints
...
Our lint deprecation previously didn't work for tool lints, because
`register_removed` was registering lints to be removed _without_ the
`clippy` prefix.
2019-08-12 19:20:36 +02:00
Jeremy Stucki
09e9568c26
Change lint type from 'pedantic' → 'complexity'
2019-08-12 10:53:23 +02:00
bors
e255f36afe
Auto merge of #4365 - lukas-code:async_new_ret_no_self, r=flip1995
...
new_ret_no_self: allow Self in inner type for impl Trait return types
Check the inner types of associated types of a trait when checking for Self in the return type of a `new` method. This means that the following will no longer warn:
```rust
trait Trait {
type Inner;
}
struct S;
impl S {
fn new() -> impl Trait<Inner = Option<Self>> {
struct TraitImpl;
impl Trait for TraitImpl {
type Inner = Option<S>;
}
TraitImpl
}
}
```
```rust
#![feature(async_await)]
struct Connection;
impl Connection {
async fn new() -> Result<Self, ()> {
Ok(S)
}
}
```
closes #4359
changelog: fix `new_ret_no_self` lint for async `new` functions.
2019-08-12 05:15:16 +00:00
Jeremy Stucki
df9063013e
Update rustdoc
2019-08-11 22:18:58 +02:00
Jeremy Stucki
5fd7d44f36
Refactor if_chain
...
Co-authored-by: Philipp Krones <hello@philkrones.com>
2019-08-11 21:02:01 +02:00
Jeremy Stucki
b651f19eb8
Rename 'flat_map' → 'flat_map_identity'
2019-08-11 20:34:25 +02:00
Jeremy Stucki
f0ce04f814
Handle calls with 'std::convert::identity'
2019-08-11 19:51:43 +02:00
Jeremy Stucki
05d9f884e1
Merge branch 'origin/master' into flat-map
2019-08-11 19:22:40 +02:00
Vallentin
b7460ad70b
Fixed repeated word
2019-08-11 12:56:30 +02:00
Ralf Jung
2dcce60fdc
deprecate invalid_ref lint
2019-08-11 09:31:55 +02:00
Michael Wright
77278ccda9
Fix wrong_self_convention
issue
...
Resolves #4293
2019-08-10 06:01:15 +02:00
Michael Wright
170d4861c6
Simplify wrong_self_convention
code
...
Use actual types instead of hir types.
2019-08-10 06:00:27 +02:00
Michael Wright
ebd24985bf
Rename implitem to impl_item
...
`impl_item` is proper snake case and used everywhere else.
2019-08-10 05:58:52 +02:00
Lukas Markeffsky
d7b9a845aa
new_ret_no_self: walk associated types in impl Trait return types
2019-08-09 17:44:05 +02:00
bors
c55d38ed7a
Auto merge of #4362 - lzutao:expect-on-cstring_as_ptr, r=flip1995
...
Fix lint_cstring_as_ptr for expect
Closes #4312
changelog: none
2019-08-09 09:22:02 +00:00
Lzu Tao
c23a5c586f
Fix lint_cstring_as_ptr for expect
2019-08-09 12:39:33 +07:00
Lzu Tao
30cbdc7491
Fix lint_single_char_pattern on raw string literal
2019-08-09 10:55:30 +07:00
bors
d23e6b396a
Auto merge of #4358 - lzutao:cleanup_implicit_return, r=flip1995
...
Use source_callsite() instead of recursive outer_expn_info()
changelog: none
2019-08-08 16:36:44 +00:00
bors
4465e2fbb8
Auto merge of #4355 - lzutao:macro_expn_try_err, r=flip1995
...
Fix macro expansion in try_err lint
Fixes #4309
changelog: none
2019-08-08 15:16:17 +00:00
Lzu Tao
59a35874c1
Use source_callsite() instead of recursive outer_expn_info()
2019-08-08 21:28:40 +07:00
Lzu Tao
90a7b60413
Use snippet_with_macro_callsite suggested by flip1995
2019-08-08 21:21:59 +07:00
Lzu Tao
0487b58f9a
Fix macro expansion in try_err lint
2019-08-08 20:22:52 +07:00
bors
286d528a45
Auto merge of #4345 - phansch:enum_variants_fix, r=flip1995
...
Don't emit enum_variant_names if remainder starts with a numeric
changelog: Fix false positive in `pub_enum_variant_names` and `enum_variant_names`
As [per the reference](https://doc.rust-lang.org/reference/identifiers.html ), identifiers must start with a letter. So we don't suggest a better
variant naming in case the remainder would start with a numeric.
Fixes #739
2019-08-07 10:22:06 +00:00
Philipp Hansch
0a988c6630
Don't emit enum_variant_names if remainder starts with a numeric
...
As [per the reference](https://doc.rust-lang.org/reference/identifiers.html ),
identifiers must start with a letter. So we don't suggest a better
variant naming in these cases.
Fixes #739
2019-08-06 20:45:36 +02:00
Lzu Tao
e4f8cd9672
Rustup https://github.com/rust-lang/rust/pull/59369
2019-08-06 19:20:41 +07:00
Philipp Hansch
cdfb72a5e1
fmt
2019-08-05 20:53:24 +02:00
Philipp Hansch
4cfb0966a1
Fix needless_bool suggestion with if-else-if-else
...
Closes #4334
2019-08-05 20:52:38 +02:00
Vincent Dal Maso
77b21b644f
Move expression check to LateLintPass
...
Changes:
- Move from EarlyLintPass
- Fix entrypoint check with function path def_id.
2019-08-05 13:23:30 +02:00
Vincent Dal Maso
4eab691db6
Add recursion check on main function
...
Changes:
- Add MainRecursion lint to clippy
- Check for no-std setup
fixes #333
2019-08-05 13:23:30 +02:00
bors
ca6a9beb31
Auto merge of #4338 - flip1995:rollup-9cm4jbr, r=flip1995
...
Rollup of 4 pull requests
Successful merges:
- #4329 (Doctests: Enable running doc tests for pedantic lints)
- #4330 (Doctests: Enable running doc tests for nursery lints)
- #4331 (Doctests: Enable running doc tests for restriction lints)
- #4332 (Split up cast.rs tests, run-rustfix for unnecessary_cast)
Failed merges:
r? @ghost
changelog: none
2019-08-05 09:44:45 +00:00
Philipp Krones
93c3da223f
Rollup merge of #4331 - phansch:doctests_restriction, r=flip1995
...
Doctests: Enable running doc tests for restriction lints
changelog: Enabled remaining doc tests for lint documentation page
master: 202 passed; 0 failed; 122 ignored; 0 measured; 0 filtered out
this PR: 231 passed; 0 failed; 123 ignored; 0 measured; 0 filtered out
Closes #4319 (assuming this is merged after #4329 and #4330 )
2019-08-05 10:50:06 +02:00
Philipp Krones
f5db24a59f
Rollup merge of #4330 - phansch:doctests_nursery, r=flip1995
...
Doctests: Enable running doc tests for nursery lints
changelog: none
master: 202 passed; 0 failed; 122 ignored; 0 measured; 0 filtered out
this PR: 213 passed; 0 failed; 122 ignored; 0 measured; 0 filtered out
cc #4319
2019-08-05 10:50:04 +02:00
Philipp Krones
713ad964af
Rollup merge of #4329 - phansch:doctests_pedantic, r=flip1995
...
Doctests: Enable running doc tests for pedantic lints
changelog: none
master: 202 passed; 0 failed; 122 ignored; 0 measured; 0 filtered out
this PR: 254 passed; 0 failed; 131 ignored; 0 measured; 0 filtered out
cc #4319
2019-08-05 10:50:03 +02:00
bors
a90b3ba301
Auto merge of #4337 - flip1995:let_unit, r=phansch
...
Make let_unit lint suggestion auto applicable
changelog: Make `let_unit` lint suggestion auto applicable
2019-08-05 08:41:24 +00:00
flip1995
c5ad0b075a
Make let_unit lint suggestion auto applicable
2019-08-05 09:31:08 +02:00
Philipp Hansch
71a943820b
Rustup to https://github.com/rust-lang/rust/pull/63213
2019-08-05 07:30:01 +02:00
Philipp Hansch
b608e02e1c
Doctests: Enable running doc tests for restriction lints
2019-08-03 21:24:50 +02:00
Philipp Hansch
2f48effc92
Doctests: Enable running doc tests for nursery lints
2019-08-03 21:01:23 +02:00
Philipp Hansch
1dc9a5012e
Doctests: Enable running doc tests for pedantic lints
2019-08-03 20:36:38 +02:00
bors
5c1e30ab05
Auto merge of #4327 - phansch:doctests_perf, r=flip1995
...
Doctests: Enable running doc tests for perf lints
changelog: none
This should be possible to merge independently of #4325
cc #4319
2019-08-03 14:06:13 +00:00
bors
3dc91838e4
Auto merge of #4325 - phansch:doctests_complexity, r=flip1995
...
Doctests: Enable running doc tests for complexity lints
changelog: none
master: `113 passed; 0 failed; 91 ignored; 0 measured; 0 filtered out`
this PR: `181 passed; 0 failed; 110 ignored; 0 measured; 0 filtered out`
cc #4319
2019-08-03 13:24:07 +00:00
Philipp Hansch
d61df4f609
Rustup to latest rustc master
...
Broken due to:
* https://github.com/rust-lang/rust/pull/63180 (`Existential` -> `OpaqueTy`)
* https://github.com/rust-lang/rust/pull/63121 (New fields for `FormatSpec`)
2019-08-03 08:44:32 +02:00
Philipp Hansch
eb68dc9a1a
Also enable doc tests for internal lints
...
Because there were fixed in the parent commit.
2019-08-03 08:12:53 +02:00
Philipp Hansch
c0cdfd296e
Doctests: Enable running doc tests for perf lints
...
This should be possible to merge independently of #4325
cc #4319
2019-08-03 08:08:00 +02:00
Philipp Hansch
abfa8a952c
Doctests: Fix all complexity lint docs
...
cc #4319
2019-08-02 18:16:35 +02:00
bors
d43ef7aa3f
Auto merge of #4322 - Y0hy0h:patch-1, r=phansch
...
Improve documentation on implicit_hasher lint
Provide an example of how to fix the implicit_hasher lint.
Fixes #3475 .
changelog: none
2019-08-01 18:58:11 +00:00
Y0hy0h
5decadd93e
Fix missing import
2019-08-01 17:54:22 +02:00
bors
18a7dce4da
Auto merge of #4314 - chansuke:add-negation-to-is_empty, r=flip1995
...
Add negation to `len_zero` lint to show more explicit message.
Fixes #4304 I have updated the `len_zero` to show the required negation in case of like the below case.
```
fn main() {
let v = vec![1];
if v.len() > 0 {
}
}
```
changelog: Clarify suggestion of `len_zero` lint.
2019-08-01 14:09:59 +00:00
flip1995
feca48d8a2
Fix doc tests
2019-08-01 15:14:06 +02:00
flip1995
7a73b8fdfa
Remove Known problems for UNNECESSARY_UNWRAP
...
This shouldn't happen with NLL
2019-08-01 15:14:06 +02:00
flip1995
e6a836e2e8
Move UNNECESSARY_UNWRAP to complexity and PANICKING_UNWRAP to correctness
2019-08-01 15:14:06 +02:00
bors
c8e5352d9b
Auto merge of #4318 - izik1:typo, r=phansch
...
Fix `for on` typo
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `cargo fmt`
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
closes #4317
changelog: minor typo fix
2019-08-01 09:20:32 +00:00
Y0hy0h
d7224a6341
Improve documentation on implicit_hasher lint
...
Provide an example of how to fix the lint.
2019-08-01 10:51:39 +02:00
bors
5d061d7058
Auto merge of #4315 - phansch:fn_to_numeric_cast_applicability, r=flip1995
...
Mark `fn_to_numeric_cast` lints as MaybeIncorrect
At least for now so that `cargo fix --clippy` is not causing problems
with this lint. See #3896 for the remaining problems with the suggestions of this lint.
changelog: none
cc #3630 , #3896
2019-08-01 07:59:51 +00:00
Zachery Gyurkovitz
b8a50cae4c
Fix for on
typo
2019-07-31 22:24:57 -07:00
Michael Wright
be646ac0df
Update formatting
2019-08-01 07:09:57 +02:00
Philipp Hansch
04ca58a691
Mark fn_to_numeric_cast
lints as MaybeIncorrect
...
At least for now so that `cargo fix --clippy` is not causing problems
with this lint.
cc #3630 , #3896
2019-07-31 21:05:31 +02:00
chansuke
2d467dca62
Add required negation in non_zero lint
2019-08-01 00:23:09 +09:00
Jakub Wieczorek
2a13e83f2b
Update all the code to pass the updated use_self
lint.
...
One struct required a temporary `#[allow(dead_code)]` annotation due to
a bug in the Rust compiler: https://github.com/rust-lang/rust/issues/63151 .
2019-07-31 08:50:43 +00:00
Jakub Wieczorek
41110b0039
Extend the use_self
lint to suggest uses of Self::Variant
.
2019-07-31 08:50:43 +00:00
bors
c3e913650e
Auto merge of #3766 - xd009642:issue-3764, r=flip1995
...
trait bounds lint - repeated types
This PR is to tackle https://github.com/rust-lang/rust-clippy/issues/3764 it's still a WIP and doesn't work but this is an initial stab. It builds though I haven't added any tests as I'm not sure where lint tests should go?
Unfortunately, it seems id isn't tied to the type itself but I guess where it is in the AST? Looking at https://manishearth.github.io/rust-internals-docs/syntax/ast/struct.Ty.html I can't see any members that would let me tell if a type was repeated in multiple trait bounds.
There may be other issues with how I've implemented this so any assistance is appreciated!
changelog: Add new lint: `type_repetition_in_bounds`
2019-07-30 12:11:17 +00:00
Michael Wright
2f5c1d031d
Fix breakage due to rust-lang/rust#61856
2019-07-30 06:39:51 +02:00
xd009642
78ebcaa526
Fix dogfood test
2019-07-28 09:31:05 +01:00
xd009642
03c543515a
Hash discriminant of lifetime.name
2019-07-27 23:04:36 +01:00
xd009642
ad637193f0
Hash discriminant of Lifetime::Name
2019-07-27 22:59:46 +01:00
xd009642
925e8207fa
Respond to review comments
...
Update README and CHANGELOG using the util scripts, refine the help message and fix the float_cmp error.
2019-07-27 21:58:29 +01:00
xd009642
5e9906b2c6
Added doc comment fixed type printout
...
Added a doc comment for the lint and fixed the printout of the type so it prints T not type(T)
2019-07-27 12:06:25 +01:00
xd009642
cac69ec063
Respond to comments and improve printout
...
Now get the trait names for the diagnostic message and removed more
`let c: fn(_) -> _ = T; hashes from hir_utils
2019-07-27 11:51:27 +01:00
Matthias Krüger
f195550148
rustup https://github.com/rust-lang/rust/pull/62964
2019-07-26 22:58:31 +02:00
xd009642
7853dac662
Responded to comments and fixed compile bug
...
Removed the hash of `let c: fn(_,_) -> _ = ExprKind::Cast` and
fixed compile issue by collecting HirVec into an actual Vec
2019-07-26 16:46:47 +01:00
xd009642
c0259179c3
Fixed more compile errors
...
Moved to rustc::hir::Ty
2019-07-24 22:59:32 +01:00
xd009642
792153104c
Fix some of the compile errors
2019-07-24 22:27:12 +01:00
xd009642
f3e4467c10
Changed Ty to ty, added lifetime 'tcx
2019-07-24 21:14:21 +01:00
xd009642
f71d59e6a6
Lint for type repetition in trait bounds.
...
This lint adds warning if types are redundantly repeated in trait bounds i.e. `T: Copy, T: Clone` instead of `T: Copy + Clone`. This is a late pass trait lint and has necessitated the addition of code to allow hashing of TyKinds without taking into account Span information.
2019-07-24 21:14:21 +01:00
Matthias Krüger
2221fc8124
rustup https://github.com/rust-lang/rust/pull/62859
2019-07-24 02:20:36 +02:00
bors
d71e9c4f10
Auto merge of #4266 - uHOOCCOOHu:fix/async_fn_lifetime, r=flip1995
...
Ignore generated fresh lifetimes in elision check
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `cargo fmt`
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
fixes #3988
changelog: Ignore generated fresh lifetimes in elision check.
**HELP**: It seems `tests/ui` are compiled under edition 2015, and I don't know how to add tests for this properly.
Here is the test input it had already passed:
```rust
#![feature(async_await)]
#![allow(dead_code)]
async fn sink1<'a>(_: &'a str) {} // lint
async fn sink1_elided(_: &str) {} // ok
async fn one_to_one<'a>(s: &'a str) -> &'a str { s } // lint
async fn one_to_one_elided(s: &str) -> &str { s } // ok
async fn all_to_one<'a>(a: &'a str, _b: &'a str) -> &'a str { a } // ok
// async fn unrelated(_: &str, _: &str) {} // Not allowed in async fn
// #3988
struct Foo;
impl Foo {
pub async fn foo(&mut self) {} // ok
}
// rust-lang/rust#61115
async fn print(s: &str) { // ok
println!("{}", s);
}
fn main() {}
```
2019-07-23 09:52:18 +00:00
Michael Wright
f05e295685
Fix breakage due to rust-lang/rust#60913
2019-07-21 12:52:14 +02:00
Michael Wright
67db88f645
Fix breakage due to rust-lang/rust#62705
...
Also rename `OUTER_EXPN_INFO` to `OUTER_EXPN_EXPN_INFO` to match new
function names.
2019-07-21 09:36:31 +02:00
bors
d509b5afef
Auto merge of #4274 - daxpedda:implicit_return_fixes, r=flip1995
...
false positives fixes of `implicit_return`
- Handle returning macro statements properly (remove "this error originates in a macro outside of the current crate")
- Handle functions that return never type
- Handle functions that panic but do not return never type
changelog: Fix false positives in `implicit_return` lint pertaining to macros and panics
2019-07-18 18:20:40 +00:00
flip1995
fc57b43f79
Format code
2019-07-18 17:23:22 +02:00
daxpedda
9e5e0f8f84
Improved imports
2019-07-17 20:44:09 +02:00
Darth-Revan
f0dc97965a
Corrections for PR review.
2019-07-17 08:58:36 +02:00
Darth-Revan
0513202d25
Implement lint for inherent to_string() method.
2019-07-17 08:58:32 +02:00
daxpedda
a2b63af746
Removed lintining on never type.
...
Abstracted repeating strings into statics.
2019-07-16 14:46:33 +02:00
Jerry Hardee
8a8eedf388
Lint
2019-07-15 14:00:07 -05:00
Jerry Hardee
8adbf7f2c1
Fix float_cmp false positive when comparing signum
...
f1.signum() == f2.signum()
f1.signum() != f2.signum()
should not trigger a warning.
2019-07-15 12:46:58 -05:00
daxpedda
6c067bf50e
false positives fixes of implicit_return
...
- Handle returning macro statements properly
- Handle functions that return never type
- Handle functions that panic but do not return never type
2019-07-15 16:02:50 +02:00
Michael Wright
b523d35d41
Deny warnings in CI
2019-07-15 07:35:02 +02:00
bors
10b915fa7e
Auto merge of #4268 - mikerite:fix-4260, r=flip1995
...
Fix bug in `implicit_hasher` causing crashes
Skip linting if the type is from an external macro. Closes #4260 .
changelog: Fix bug in `implicit_hasher` causing crashes
2019-07-13 08:59:12 +00:00
Lzu Tao
27c5348793
Rustup macro expansion and resolution
2019-07-12 00:26:36 +07:00
Michael Wright
de7749832c
Fix bug in implicit_hasher
causing crashes
...
Skip linting if the type is from an external macro. Closes #4260 .
2019-07-11 08:47:05 +02:00
uHOOCCOOHu
a9bec0c8a6
Ignore generated fresh lifetimes in elision check.
2019-07-10 01:57:25 +08:00
bors
032ae96856
Auto merge of #4257 - skade:improve-cast-alignment, r=flip1995
...
Improve cast_ptr_alignment lint
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [x] Followed [lint naming conventions][lint_naming]
- [x] Added passing UI tests (including committed `.stderr` file)
- [x] `cargo test` passes locally
- [x] Executed `util/dev update_lints`
- [x] Added lint documentation
- [x] Run `cargo fmt`
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
* print alignment in bytes in the lint message
* ignore ZST left-hand types
Fixes #3797 and #4256
changelog:
* `cast_ptr_alignment`: Print alignment in bytes in the lint message
* `cast_ptr_alignment`: Ignore casting from ZST left-hand types
2019-07-09 15:28:26 +00:00
Florian Gilcher
aa72cac87a
Improve cast_ptr_alignment lint
...
* print alignment in bytes in the lint message
* ignore ZST left-hand types
2019-07-09 17:02:26 +02:00
Vinzent Steinberg
f831b0979e
cast_ptr_alignment: Mention legal use under known problems
...
Refs #2881 .
2019-07-09 14:48:48 +02:00
bors
5c921a9f61
Auto merge of #4233 - thiagoarrais:jens1o-fix-1208, r=phansch,flip1995
...
Avoid reporting string_lit_as_bytes for long strings
Port of @jens1o code ([b76f939][jens1o_commit])
Fixes #1208
[jens1o_commit]: b76f939ac2
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `cargo fmt`
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
changelog: bugfix for long strings as bytes
2019-07-09 09:48:33 +00:00
Thiago Arrais
7d1a9447ea
Extract semantic constant
2019-07-08 17:51:13 -03:00
Bara
2fb73fe037
Use empty block instead of unit type for needless return
2019-07-08 20:45:51 +02:00
Jens Hausdorf
6d1aaac6c3
Avoid reporting string_lit_as_bytes for long strings
...
Port of @jens1o code ([b76f939][jens1o_commit])
Fixes #1208
[jens1o_commit]: b76f939ac2
Co-authored-by: Thiago Arrais <thiago.arrais@gmail.com>
2019-07-08 13:13:01 -03:00
Jeremy Stucki
c7da4c26fb
Implement flat_map lint
2019-07-08 17:11:54 +02:00
Michael Wright
c72be0f65a
rustfmt
2019-07-06 19:43:34 +02:00
Michael Wright
adcc02ed8a
Address reviews
2019-07-06 19:35:08 +02:00
Michael Wright
0579c3e0aa
Fix breakage due to rust-lang/rust#61988
2019-07-06 19:06:49 +02:00
Michael Wright
ce308910fd
Fix unknown lint warnings
2019-07-06 09:15:48 +02:00
Lzu Tao
481499101b
Remove lint for ONCE_INIT
...
ONCE_INIT will be deprecated in rust 1.38.0
2019-07-06 12:34:32 +07:00
Lzu Tao
7293defb34
Rename hir::map::local_def_id_from_hir_id to local_def_id
2019-07-06 10:52:51 +07:00
Michael Wright
c702a623a9
Remove unused import
2019-07-04 06:49:31 +02:00
Matthias Krüger
f18f81d6a6
rustup https://github.com/rust-lang/rust/pull/61995
2019-07-03 18:00:35 +02:00
Michael Wright
8fa023272f
Fix allow bug in trivially_copy_pass_by_ref
...
Closes #3992
2019-07-03 07:15:21 +02:00
Michael Wright
c199d9068e
Fix match_same_arms
false negative
...
Closes #4244
2019-07-02 08:18:55 +02:00
bors
47ada9ae07
Auto merge of #4243 - mikerite:fix-4058, r=flip1995
...
Fix `never_loop` false positive
Closes #4058
changelog: none
2019-07-01 08:10:25 +00:00
bors
ad638a3e42
Auto merge of #4222 - jfrikker:try_err, r=flip1995
...
Adding try_err lint
changelog: Adds the "try_err" lint, which catches instances of the following: Err(x)?
fixes #4212
2019-07-01 07:41:33 +00:00
Michael Wright
7c98915da9
Fix never_loop
false positive
...
Closes #4058
2019-07-01 07:22:04 +02:00
Manish Goregaokar
e3619a6507
fmt
2019-06-25 14:41:10 -07:00
Manish Goregaokar
4a6914bb8c
Remove a hir_to_node_id
2019-06-25 14:34:47 -07:00
Manish Goregaokar
d744dcdaaf
find_by_hir_id -> find
2019-06-25 14:34:07 -07:00
Manish Goregaokar
c47a7e4ef2
get_parent_node_by_hir_id -> get_parent_node
2019-06-25 14:33:51 -07:00
Joe Frikker
8880677b4f
Making try_err machine applicable
2019-06-24 21:28:46 -04:00
flip1995
662037bcf2
Simplify unsugar_if to just an if expr check
2019-06-24 09:51:53 +02:00
flip1995
c192c07930
Remove ast:: prefix from types
2019-06-24 09:40:11 +02:00
Mazdak Farrokhzad
46a0e54361
Put 'if let' back into comment.
2019-06-24 07:20:52 +02:00
Mazdak Farrokhzad
0373b007da
Pacify rustfmt.
2019-06-24 04:54:23 +02:00
Mazdak Farrokhzad
4434bfac01
Fix dogfood test failures.
2019-06-24 04:00:05 +02:00
Joe Frikker
1e6c6976dd
PR comments
2019-06-23 18:02:13 -04:00
Mazdak Farrokhzad
b918594369
Fix fallout from rust-lang/rust PR 60861.
2019-06-23 17:24:45 +02:00
Joe Frikker
60a80849ce
Adding try_err lint
2019-06-22 16:37:05 -04:00
bors
c5d1ecd474
Auto merge of #4220 - d-dorazio:4182-needless-return-void-functions, r=flip1995
...
make needless_return work with void functions
fixes https://github.com/rust-lang/rust-clippy/issues/4181 .
changelog: make needless_return work with void functions.
I don't think the failure is related to my changes, but I'm not sure 🤔
2019-06-22 09:38:53 +00:00
Lzu Tao
6aea41e050
Fix fallout cause NodeId pruning
2019-06-22 13:41:16 +07:00
Daniele D'Orazio
66dbc02b05
more idiomatic code
2019-06-21 14:46:34 +02:00
flip1995
6dc8084788
Remove another unnecessary lifetime
2019-06-21 14:41:52 +02:00
Jeremy Stucki
746fbad98a
Remove needless lifetimes
2019-06-21 14:41:19 +02:00
Daniele D'Orazio
e1a78ae528
update tests and fix lints in clippy
2019-06-21 14:17:59 +02:00
Daniele D'Orazio
6396a7a425
make needless_return work with void functions
2019-06-21 13:58:22 +02:00
flip1995
ca2ba973a7
Remove unnecssary lifetime from trait_ref_of_method
2019-06-21 12:32:39 +02:00
Michael Wright
837b5208f7
Fix breakage due to rust-lang/rust#61968
2019-06-21 08:14:07 +02:00
Lzu Tao
4fa498a3eb
Fix warnings about unnecessary lifetime bounds
...
Rustup https://github.com/rust-lang/rust/pull/61172
2019-06-20 01:36:23 +07:00
Lzu Tao
5e887b2a6a
Fix lifetime mismatch between LateContext and Ty
2019-06-19 17:21:53 +07:00
Lzu Tao
321779979a
Fix missing field in ExprKind::Yield
...
Rustup rust-lang/rust#61941
2019-06-19 16:59:25 +07:00
bors
97f8caabf6
Auto merge of #4210 - dtolnay:division, r=flip1995
...
Downgrade integer_division to restriction
I believe that this lint falls outside of the scope of opinionated pedantism of the other pedantic lints.
changelog: Downgrade integer_division lint from pedantic to restriction
2019-06-19 07:57:27 +00:00
Philipp Hansch
ebce573006
Refactor: Replace NodeSet with HirIdSet
...
This saves us one HirId -> NodeId conversion.
2019-06-18 19:45:01 +02:00
Matthias Krüger
4d984dc6e6
rustup https://github.com/rust-lang/rust/pull/61836/
2019-06-18 11:15:47 +02:00
Daniele D'Orazio
be14ea8c37
fix suggestion for floating points inequality
...
It should be of the form `(a - b).abs() > error` whereas it was
`(a - b).abs() < error` that is instead what should be used for equality.
2019-06-17 16:42:43 +02:00
David Tolnay
f88a387c3f
Downgrade integer_division to restriction
2019-06-15 00:17:04 -07:00
Lzu Tao
9bfdbd13c2
Fix wrong lifetime of TyCtxt
2019-06-14 23:47:48 +07:00
krk
fefa7e7f67
Register rename to the LintStore.
2019-06-14 10:45:03 +02:00
krk
55740219b0
Rename REDUNDANT_STATIC_LIFETIME to REDUNDANT_STATIC_LIFETIMES.
2019-06-14 10:45:03 +02:00
Kerem
3b1080542b
Remove pub from RedundantStaticLifetime.visit_type function.
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-06-14 10:45:02 +02:00
krk
637e92d44e
Rename const_static_lifetime to redundant_static_lifetime.
2019-06-14 10:45:02 +02:00
krk
b38ce08e76
Merge StaticConst and StaticStatic lints into StaticConst.
2019-06-14 09:41:47 +02:00
krk
87e9dee884
Use RedundantStaticLifetime in StaticStatic.
2019-06-14 09:41:47 +02:00
krk
ff1b533c13
Move type-checking logic in StaticConst to RedundantStaticLifetime.
2019-06-14 09:41:46 +02:00
krk
16bd4796e9
Add lint for statics with explicit static lifetime.
2019-06-14 09:41:46 +02:00
bors
7b2a7a2257
Auto merge of #4201 - mgr-inz-rafal:typos_in_docs, r=matthiaskrgr
...
Typos and minor grammar corrections
Just some minor grammar issues and typos in documentation.
2019-06-13 05:01:02 +00:00
Lzu Tao
3832a8d253
Fix wrong lifetime of TyCtxt
2019-06-13 02:49:02 +07:00
mgr-inz-rafal
7ced26d863
Typos and minor grammar corrections
2019-06-12 20:07:10 +02:00
Thiago Arrais
b364eb7b54
Adds lint for integer division
2019-06-12 09:37:14 -03:00
Grzegorz
d4ad23bb3f
redundant_closure_for_method_calls fixes:
...
lint does not trigger when there is a difference in mutability
lint does not trigger when the method belongs to a trait which is not implemebted directly (Deref)
2019-06-12 13:43:36 +02:00
bors
bd33a97cc4
Auto merge of #4199 - flip1995:implicit_return_docs, r=flip1995
...
Fix implicit_return docs
Resolves #4197
changelog: none
2019-06-12 09:58:24 +00:00
flip1995
310c90abb8
Fix implicit_return docs
2019-06-12 10:51:14 +02:00
Matthias Krüger
7c91fb8ded
rustup https://github.com/rust-lang/rust/pull/61758/files
2019-06-12 10:28:58 +02:00
Lzu Tao
79e3c7cd55
Remove wrong lifetime from LintContext
2019-06-12 10:28:52 +02:00
bors
ba1702a05f
Auto merge of #4190 - projedi:fix-eta, r=flip1995
...
Fixing eta with respect to lazy evaluation.
This fixes #4187
changelog: `redundant_closure`: stop linting on expressions returning a function, which is then directly used by the closure
2019-06-10 19:03:18 +00:00
Alexander Shabalin
86bab94631
Fixing eta with respect to lazy evaluation.
2019-06-10 13:58:40 +03:00
Matthias Krüger
7d83e13660
rustup https://github.com/rust-lang/rust/pull/61669/
2019-06-09 15:21:28 +02:00
Michael Wright
b726b41daf
Add OUTER_EXPN_INFO lint
2019-06-08 13:35:04 +02:00
bors
71be6f62fa
Auto merge of #4177 - mikerite:compiler_lint_functions_fewer_strings, r=phansch
...
Remove `to_string()`s from CompilerLintFunctions
changelog: none
2019-06-06 10:25:13 +00:00
bors
5be4e71262
Auto merge of #4136 - euclio:println-writeln-suggestions, r=flip1995
...
add suggestions for print/write with newline lint
changelog: Add machine-applicable suggestions for `print!`/`write!` with newline lints.
2019-06-06 08:26:48 +00:00
Matthias Krüger
d0ca09883e
rustup https://github.com/rust-lang/rust/pull/57428/
2019-06-06 09:21:19 +02:00
Michael Wright
b36d7a0c61
Remove to_string()
s from CompilerLintFunctions
2019-06-06 07:12:12 +02:00
bors
42f96b2558
Auto merge of #4164 - mikerite:fix-4144, r=mikerite
...
Fix .map(..).unwrap_or_else(..) bad suggestion
Closes #4144
2019-06-04 06:28:23 +00:00
mikerite
3b7d6eeb4f
Fix comment grammar
...
Co-Authored-By: Philipp Krones <hello@philkrones.com>
2019-06-04 08:27:31 +02:00
bors
28a39e9741
Auto merge of #4165 - BO41:needless_range_loop, r=phansch
...
Add example to needless_range_loop
adds a "could be written as" example
btw, is it correct that the lint triggers even if the index is used not just for getting the values by index?
So that I have to add `.iter().enumerate()` to still get an index?
changelog: none
2019-06-03 08:28:15 +00:00
BO41
dd007e4477
Change from ignore to rust
2019-06-02 20:06:50 +02:00
Mateusz Mikuła
a3ace5c3ca
Cargo fmt
2019-06-02 18:58:11 +02:00
Mateusz Mikuła
9fefe36737
Rustup for https://github.com/rust-lang/rust/pull/61276
2019-06-02 18:30:40 +02:00
BO41
bd8f289247
Add example to needless_range_loop
2019-06-02 15:28:32 +02:00
Michael Wright
98585a0324
Fix .map(..).unwrap_or_else(..) bad suggestion
...
Closes #4144
2019-06-02 08:50:20 +02:00
Lzu Tao
f67c3e4b2a
Make use of new outer_expn_info()
function
2019-06-01 16:25:51 +07:00
Andy Russell
2d0c797da6
add suggestions for print/write with newline lint
2019-05-30 13:46:04 -04:00
bors
0ab3f1762e
Auto merge of #4113 - rust-lang:author, r=flip1995
...
Fix `Block` dump in author lint
changelog: The `#[clippy::author]` attribute now emits correct pattern code for block expressions
2019-05-30 10:34:56 +00:00
bors
018fa30c56
Auto merge of #4153 - matthiaskrgr:rustup_5, r=flip1995
...
rustup https://github.com/rust-lang/rust/pull/60928
changelog: none
2019-05-29 20:01:57 +00:00
Matthias Krüger
22e77dfa98
rustup https://github.com/rust-lang/rust/pull/60928
2019-05-29 00:41:34 +02:00
Matthias Krüger
c9cc11e9fa
rustup https://github.com/rust-lang/rust/pull/61164
...
(which is included in https://github.com/rust-lang/rust/pull/61274 )
2019-05-28 20:47:16 +02:00
Oliver Scherer
f98e4bd33b
Fix Block
dump in author lint
2019-05-28 13:01:11 +02:00
bors
fb33fad08e
Auto merge of #4142 - agnxy:rename-assoc, r=flip1995
...
Rename "Associated*" to "Assoc*"
This is to fix the breakage introduced by rust-lang/rust#60163 .
changelog: none
2019-05-28 08:59:06 +00:00
bors
d57845ffdf
Auto merge of #4071 - matthiaskrgr:sizeof, r=flip1995
...
trivially_copy_pass_by_ref: print size of type and limit in the lint message
changelog: trivially_copy_pass_by_ref: print size of type and limit in the lint message
2019-05-28 07:56:04 +00:00
Oliver Scherer
73d1830812
Rustup to rustc 1.36.0-nightly (fa40a111f 2019-05-27)
2019-05-27 21:58:54 +02:00
bors
7b501f0f6a
Auto merge of #4137 - euclio:let-return, r=oli-obk
...
tweak `let_and_return` diagnostic
changelog: `let_and_return`: label the unnecessary let binding and convert the note to a structured
suggestion
2019-05-27 13:04:14 +00:00
bors
eb0a2884d2
Auto merge of #4149 - flip1995:rollup-6knpdqb, r=flip1995
...
Rollup of 2 pull requests
Successful merges:
- #4102 (Fix match_same_arms to fail late)
- #4119 (Improve non ascii literal)
Failed merges:
r? @ghost
2019-05-27 11:33:29 +00:00
Philipp Krones
dce670c73c
Rollup merge of #4119 - BO41:non_ascii_literal, r=flip1995
...
Improve non ascii literal
This PR improves the example of the [non_ascii_literal](https://rust-lang.github.io/rust-clippy/master/index.html#non_ascii_literal ) lint.
It also makes it auto-fixable.
Please review. This is my first PR to this project.
(Thanks @flip1995 for the help :)
changelog: none
fixes #4117
2019-05-27 13:09:17 +02:00
Philipp Krones
f0a767352b
Rollup merge of #4102 - Urriel:fix/4096_match_same_arms, r=flip1995
...
Fix match_same_arms to fail late
Changes:
- Add a function search_same_list which return a list of matched expressions
- Change the match_same_arms implementation behavior. It will lint each same arms found.
fixes #4096
changelog: none
2019-05-27 13:09:16 +02:00
bors
cf81a3b6d0
Auto merge of #3832 - HarrisonMc555:use_last, r=flip1995
...
Implement "Use last" lint
Closes #3673
This lint checks the use of `x.get(x.len() - 1)` and suggests `x.last()` (where `x` is a `Vec`).
There's at least one more thing that needs to happen here. I believe I am correctly checking most of the scenarios and avoiding false positives. However, if different `Vec`s are used for the `x.get` and `y.len`, then it will emit a false positive. In other words, I need to check to make sure the `Vec`s are the same.
Also, a lot of these commits were temporary and not helpful to the project history...am I supposed to squash on merge? If so, how do I do that?
changelog: New lint: `get_last_with_len`
2019-05-27 11:04:38 +00:00
Seo Sanghyeon
2c53a3f970
Fix typo in comment
2019-05-27 12:32:04 +09:00
Oliver Scherer
637e656451
Rustfmt
2019-05-26 17:36:21 +02:00
Oliver Scherer
fd2ecfcc89
Rustup to rustc 1.36.0-nightly (2268d9923 2019-05-26)
2019-05-26 16:47:26 +02:00
Andrew Xu
dcf064a4f9
Rename "Associated*" to "Assoc*"
...
This is to fix the breakage introduced by rust-lang/rust#60163 .
2019-05-25 20:31:34 +08:00
Philipp Hansch
a650659d63
Rustup to https://github.com/rust-lang/rust/pull/61026
2019-05-25 09:45:07 +02:00
Andy Russell
effea41fe4
tweak let_and_return
diagnostic
...
Label the unnecessary let binding and convert the note to structured
suggestion.
2019-05-24 14:52:55 -04:00
Matthias Krüger
c67d2b121a
rustup https://github.com/rust-lang/rust/pull/60803/
2019-05-24 15:25:36 +02:00
Philipp Hansch
aca56727db
Rustup to https://github.com/rust-lang/rust/pull/59545
2019-05-24 08:19:51 +02:00
Matthias Krüger
5d58163f7d
trivially_copy_pass_by_ref: print size of type and limit in the lint message
2019-05-23 23:48:20 +02:00
Philipp Hansch
7e9db162b5
Rollup merge of #4129 - matthiaskrgr:if_chain, r=phansch
...
update if_chain to 1.0.0
2019-05-23 21:28:49 +02:00
Philipp Hansch
a316179850
Rustup to https://github.com/rust-lang/rust/pull/60965
2019-05-23 20:19:00 +02:00
Matthias Krüger
655aef7c6c
update if_chain to 1.0.0
2019-05-23 17:23:59 +02:00
Philipp Hansch
edb698105f
cargo fmt
...
Roses are red
Violets are blue
`Add rustfmt to a pre-commit hook` is what I should do.
2019-05-23 07:24:53 +02:00
Philipp Hansch
635a2fa5df
Rustup to https://github.com/rust-lang/rust/pull/60740
...
changelog: none
2019-05-23 07:19:25 +02:00
Manish Goregaokar
a6cf35264f
Rustup to rustc 1.36.0-nightly (dbfe70dfc 2019-05-22)
2019-05-21 21:58:27 -07:00
Vincent Dal Maso
fa9f744c2c
Add the common case search
...
Changes:
- Refactor the common case search into a function.
- Fix the useless Option around the vec in the search_same_list.
2019-05-21 13:08:19 +02:00
Philipp Krones
42d849c185
Formatting inside if_chain! macro
2019-05-21 10:45:38 +02:00
Harrison McCullough
f32c2fcb7e
Implement get_last_with_len lint
2019-05-20 18:01:21 -06:00
BO41
36c8aaba8f
Fix tests and make other ascii lints auto-fixable
2019-05-20 16:02:50 +02:00
BO41
859b329603
Make non_ascii_literal auto-fixable
2019-05-20 15:23:38 +02:00
BO41
874de889dc
Improve verbosity of non_ascii_literal lint example
2019-05-20 15:08:53 +02:00
bors
fd56381015
Auto merge of #4088 - pJunger:check1, r=oli-obk
...
Added lint for TryFrom for checked integer conversion.
works towards #3947
Added lint for try_from for checked integer conversion.
Should recognize simple & straight-forward checked integer conversions.
2019-05-20 09:31:09 +00:00
bors
0417a0ac4d
Auto merge of #4107 - taiki-e:useless_attribute, r=flip1995
...
useless_attribute: Add unreachable_pub to whitelists
Fixes #4106
changelog: `useless_attribute`: whitelist `unreachable_pub` on `use` items
2019-05-19 10:37:09 +00:00
bors
4071b2996e
Auto merge of #4099 - flip1995:ul_4094, r=oli-obk
...
Add macro check for unreadable_literal lint
Closes #4094
changelog: Disable `unreadable_literal` lint inside macros
2019-05-19 08:46:43 +00:00
pJunger
f627fbdc59
Removed symbols again.
2019-05-18 10:54:03 +02:00
pJunger
7e0f2e3f1e
Removed unused lifetime.
2019-05-18 09:34:56 +02:00
pJunger
ce9494a3df
Changed impl to use symbols.
2019-05-18 09:34:56 +02:00
pJunger
00a5ef64a2
Added suggestion for conversion with is_ok.
2019-05-18 09:33:26 +02:00
pJunger
0a43dcfd04
Fixed more lint findings.
2019-05-18 09:33:26 +02:00
pJunger
1c86b3758d
Fixed clippy lints in checked_conversions.rs.
2019-05-18 09:33:26 +02:00
pJunger
14d948c560
Registered lint.
2019-05-18 09:33:25 +02:00
pJunger
47444c44ad
Added lint for TryFrom for checked integer conversion rust-lang#3947.
2019-05-18 09:33:25 +02:00
Taiki Endo
40fc725298
useless_attribute: Add unreachable_pub to whitelists
2019-05-18 14:22:16 +09:00
Oliver Scherer
f49ef0ec04
Dogfood
2019-05-18 01:42:15 +02:00
Oliver Scherer
462df72100
Dogfood and rustfmt
2019-05-18 00:58:25 +02:00
Oliver Scherer
f7f85a0dca
Prevent symbocalypse
2019-05-17 23:53:54 +02:00
Manish Goregaokar
ce63f3ae4d
Add known problems
2019-05-16 09:43:07 -07:00
Manish Goregaokar
373d270673
Rename to redundant_closure_for_method_calls
2019-05-16 09:18:50 -07:00
Vincent Dal Maso
902726c38d
Fix match_same_arms to fail late
...
Changes:
- Add a function search_same_list which return a list of matched expressions
- Change the match_same_arms implementation behaviour. It will lint each same arms found.
2019-05-16 11:27:45 +02:00
Michael Wright
4fcaab3d62
Split redundant_closure lint
...
Move the method checking into a new lint called
`redundant_closures_for_method_calls` and put it in the pedantic group.
This aspect of the lint seems more controversial than the rest.
cc #3942
2019-05-16 08:25:39 +02:00
flip1995
3543f58c84
Add macro check for unreadable_literal lint
...
Closes #4094
2019-05-15 14:57:56 +02:00
flip1995
5dea5d404c
Fix dogfood errors
2019-05-14 15:08:29 +02:00
flip1995
4b4d734758
Also hash mem::discriminant in hash_stmt
2019-05-14 14:13:23 +02:00
Oliver Scherer
f11b236087
mem::discriminant trumps manual discriminant hashing
2019-05-14 14:04:55 +02:00
Oliver Scherer
bc031d4c74
Properly hash enums
2019-05-14 13:57:48 +02:00
bors
501830bf01
Auto merge of #4084 - mikerite:fix-4019, r=oli-obk
...
Fix 4019
Fixes #4019
2019-05-14 11:26:16 +00:00
Oliver Scherer
dfbc74b08b
Rustfmt all the things
2019-05-14 10:33:48 +02:00
Oliver Scherer
af80c53450
Clippy dogfood
2019-05-14 10:33:48 +02:00
Oliver Scherer
b2dbda4d48
Use symbols instead of strings
2019-05-14 10:33:42 +02:00
Manish Goregaokar
42480fd031
Rustup to rustc 1.36.0-nightly (1764b2972 2019-05-12)
2019-05-13 11:39:14 -07:00
Michael Wright
2efd8c6e05
Fix comments; minor refactoring
2019-05-12 10:32:19 +02:00
Michael Wright
e6e3f24e0c
Fix #4019
2019-05-12 10:18:38 +02:00
Manish Goregaokar
abf6481f87
Add in_macro again
2019-05-11 21:39:37 -07:00
Manish Goregaokar
7eb8018554
Rename in_macro to in_macro_or_desugar
2019-05-11 21:39:02 -07:00
Manish Goregaokar
19cfb84405
Start handling desugarings in author lint
2019-05-10 23:43:58 -07:00
Manish Goregaokar
0499184201
Ignore desugarings in macro checks
2019-05-10 23:40:42 -07:00
Manish Goregaokar
5661e5947f
Add IfDesugar to desugaring_name
2019-05-10 23:40:42 -07:00
Manish Goregaokar
26ebc3e9a1
Fix consts.rs
2019-05-10 23:40:42 -07:00
Manish Goregaokar
c9ed92ce20
More uses of higher::if_block
2019-05-10 23:40:42 -07:00
Manish Goregaokar
69b1da4d82
Remove some unnecessary If arms
2019-05-10 23:40:42 -07:00
Manish Goregaokar
da8b56d99a
Fix needless_bool.rs
2019-05-10 23:40:42 -07:00
Manish Goregaokar
09a93291ec
Fix question_mark.rs
2019-05-10 23:40:42 -07:00
Manish Goregaokar
f40c77a776
Fix shadow.rs
2019-05-10 23:40:42 -07:00
Manish Goregaokar
62897747fd
Fix unwrap.rs
2019-05-10 23:40:42 -07:00
Manish Goregaokar
e7af60f258
Add util function for desugaring if block
2019-05-10 23:40:42 -07:00
Andy Russell
9ede56f383
use derive
feature over serde_derive
crate
2019-05-09 13:05:34 -04:00
Matthias Krüger
857c2c53bf
rustup https://github.com/rust-lang/rust/pull/60586
...
cc https://github.com/rust-lang/rust/issues/60623
2019-05-08 06:58:37 +02:00
Matthias Krüger
d618637c05
Rustup to rustc 1.36.0-nightly (13fde05b1 2019-05-03)
2019-05-03 22:28:34 -07:00
Jean Mertz
ff244b6c43
Fix link in into_iter_on_array documentation
...
The non-inline variant wasn't being rendered correctly.
see: https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array
2019-05-03 17:38:13 +02:00
bors
8b906f94f3
Auto merge of #4053 - euclio:too-many-args-span, r=flip1995
...
remove function body from "too many args" span
changelog: Remove the function body from the "too many arguments" span.
2019-05-03 07:26:55 +00:00
Andy Russell
9253506112
remove function body from "too many args" span
2019-05-02 10:36:59 -04:00
bors
8151a17422
Auto merge of #4049 - airt:fix-4033-search_is_some, r=flip1995
...
Fix #4033 search_is_some
Fixes #4033 .
Suggest `any(|x| ..)` instead of `any(|&x| ..)` for `find(|&x| ..).is_some()` (Lint [search_is_some](https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some ))
FnDecl of `find`:
```rust
fn find<P>(&mut self, mut p: P) -> Option<Self::Item> where
P: FnMut(&Self::Item) -> bool
```
FnDecl of `any`:
```rust
fn any<F>(&mut self, mut f: F) -> bool where
F: FnMut(Self::Item) -> bool
```
If match on `|&_|` in closure of `find`, only use `|_|` in the suggestion.
PS. It's the first time that I have used the `hir` API, please correct me if there is any mistake 😺
2019-05-02 08:45:02 +00:00
bors
1cf5d7f04c
Auto merge of #4035 - JoshMcguigan:useless_let_if_seq-3043, r=oli-obk
...
useless_let_if_seq handle interior mutability
fixes #3043
This passes all tests, including a new one specifically dealing with a type with interior mutability. The main thing I'm unsure of is whether the span I used in the call to `is_freeze` is the most appropriate span to use, or if it matters.
2019-05-02 07:03:28 +00:00
Matthias Krüger
f195680edb
more Use->DropTemps fixes
2019-05-01 23:04:35 +02:00
Matthias Krüger
24e856f10a
rustup https://github.com/rust-lang/rust/pull/60417/
...
cc https://github.com/rust-lang/rust/issues/60448
2019-05-01 22:18:16 +02:00
Matthias Krüger
6967cf59a4
clippy-driver: use rustc_tools_util to get version info.
...
This will add git hash information to `clippy-driver -V` output.
2019-05-01 10:43:16 +02:00
airt
d063516c85
check closure arguments before use it
2019-05-01 04:41:00 +08:00
airt
5d6a100f81
format code
2019-05-01 04:03:51 +08:00
André Luis Leal Cardoso Junior
e428862c95
Update find(p).map(p) occurrences to use find_map(p)
2019-04-30 16:45:32 -03:00
André Luis Leal Cardoso Junior
b411391f8e
Add lints for find_map
2019-04-30 16:45:28 -03:00
airt
c3fde34fd5
fix suggestion for search_is_some
2019-05-01 03:11:58 +08:00
airt
bd0b75f6c3
fix suggestion for search_is_some naively
2019-05-01 01:08:16 +08:00
Manish Goregaokar
83519d3ca0
Rustup to rustc 1.36.0-nightly (f843ad60e 2019-04-30)
2019-04-29 22:31:39 -07:00
Manish Goregaokar
79f48d0573
Rustup to rustc 1.36.0-nightly (c7fcbfbf1 2019-04-29)
...
See https://github.com/rust-lang/rust/pull/60317
2019-04-28 22:42:16 -07:00
Manish Goregaokar
770de14505
Suggest .copied() for map_clone on iterators too
2019-04-28 11:14:39 -07:00
Michael Wright
5ad79c2b3d
Fix breakage due to rust-lang/rust#60225
2019-04-28 09:11:20 +02:00
Josh Mcguigan
2bbe8be8d0
useless_let_if_seq handle interior mutability
2019-04-25 19:07:01 -07:00
bors
910d538ef1
Auto merge of #4008 - g-bartoszek:boxed-fnmut, r=phansch
...
Do not trigger redundant_closure for non-function types
fixes #3898
Added a check for the entity being called in the closure body to be a FnDef. This way lint does not trigger for ADTs (Box) but I'm not sure if it's correct and not too restrictive.
<!--
Thank you for making Clippy better!
We're collecting our changelog from pull request descriptions.
If your PR only updates to the latest nightly, you can leave the
`changelog` entry as `none`. Otherwise, please write a short comment
explaining your change.
If your PR fixes an issue, you can add "fixes #issue_number" into this
PR description. This way the issue will be automatically closed when
your PR is merged.
If you added a new lint, here's a checklist for things that will be
checked during review or continuous integration.
- [ ] Followed [lint naming conventions][lint_naming]
- [ ] Added passing UI tests (including committed `.stderr` file)
- [ ] `cargo test` passes locally
- [ ] Executed `util/dev update_lints`
- [ ] Added lint documentation
- [ ] Run `cargo fmt`
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
Delete this line and everything above before opening your PR -->
changelog: Fix false positive in `redundant_closure` pertaining to non-function types
2019-04-25 18:13:47 +00:00
bors
6a0105e59f
Auto merge of #4026 - cemiloten:working-on-#3981, r=flip1995
...
Attempt to fix #3981
Fixes #3981
Hi, hopefully this is correct, happy to have feedback.
changelog: Don't trigger `unnecessary_cast` inside a macro
2019-04-25 10:37:30 +00:00
cemil
8eae2d3707
Ignore unnecessary cast if inside macro
2019-04-25 12:06:20 +02:00
bors
8c0e038f6f
Auto merge of #4029 - phansch:update_pulldown_cmark, r=oli-obk
...
Update pulldown_cmark to 0.5
We now no longer have to use our own wrapper around `Parser` and can use
the new `OffsetIter`.
changelog: none
2019-04-25 09:16:46 +00:00
Philipp Hansch
1f5a3c6e52
Rustup for https://github.com/rust-lang/rust/pull/59042
2019-04-25 07:29:23 +02:00
Philipp Hansch
32e877ce13
Update pulldown_cmark to 0.5
...
We now no longer have to use our own wrapper around `Parser` and can use
the new `OffsetIter`.
2019-04-24 22:54:12 +02:00
Matthew Kraai
5c7349d430
Remove approx_constant known problems
...
Fixes #4025 .
2019-04-24 09:29:45 -07:00
bors
253601a91c
Auto merge of #4024 - kraai:suppress-let_and_return-if-let-has-attributes, r=flip1995
...
Suppress let_and_return if let has attributes
Fixes #3882 .
changelog: suppress `let_and_return` if `let` has attributes
2019-04-24 07:29:35 +00:00
Matthew Kraai
c0479402e4
Suppress let_and_return if let has attributes
...
Fixes #3882 .
2019-04-23 23:32:16 -07:00
Matthew Kraai
9a43e09d77
Change "if types change" to "if you later change the type"
...
Fixes #3964 .
2019-04-23 16:53:09 -07:00
bors
9897442f27
Auto merge of #4018 - rust-lang:or_fn_call_variants, r=oli-obk
...
Ignore non-const ctor expressions in or_fn_call
Fixes https://github.com/rust-lang/rust-clippy/issues/1338
Should have been fixed by #919 , however that focuses on const ctor expressions only, and `.or(Some(local))` isn't const.
This also automatically ignores things like `.or(Some(local.clone())` which we don't actually want to do; I need to figure out what to do here.
changelog: Fixed false positive in [`or_fn_call`] pertaining to enum variant constructors
r? @oli-obk @phansch
2019-04-23 18:24:10 +00:00
Manish Goregaokar
f3455cda81
Rustup to rustc 1.36.0-nightly (fe0a415b4 2019-04-23)
2019-04-23 08:25:45 -07:00
Manish Goregaokar
7e2043de2f
Ignore all enum and struct constructors in lints about *or(call())
2019-04-23 08:01:42 -07:00
bors
d420589e1a
Auto merge of #4013 - kraai:move-path_buf_push_overwrite-to-nursery, r=matthiaskrgr
...
Move path_buf_push_overwrite to nursery
See #4012 .
changelog: move `path_buf_push_overwrite` to the nursery
2019-04-21 20:44:03 +00:00
Igor Matuszewski
930f1e6129
Use newly-introduced mutability query for statics
...
Fixes fallout from https://github.com/rust-lang/rust/pull/60124 .
cc https://github.com/rust-lang/rust/issues/60154
2019-04-21 21:15:34 +02:00
Matthew Kraai
4171299632
Move path_buf_push_overwrite to nursery
...
See #4012 .
2019-04-21 10:24:51 -07:00
Grzegorz
4f801a278d
redundant closure triggers for fnptrs and closures
2019-04-20 22:20:14 +02:00
bors
54e80c7b34
Auto merge of #4007 - phansch:fix_allowing_toplevel_ref_arg, r=flip1995
...
Allow allowing of toplevel_ref_arg lint
I'm not sure why some lints need the `HirId` to be able to recognize the
lint level attributes, but this commit makes the lint level attributes
work for `toplevel_ref_arg`.
Fixes #2332
changelog: Allow allowing of `toplevel_ref_arg` lint
2019-04-20 18:22:53 +00:00
bors
7a6d5c00d3
Auto merge of #4006 - phansch:fix_module_name_repetitions_fp, r=flip1995
...
Fix false positive in module_name_repetitions lint
This lint was triggering on modules inside expanded attrs, like
for example `#[cfg(test)]` and possibly more.
It was not reporting a location in #3892 because `span.lo()` and `span.hi()` both were 0.
Fixes #3892
changelog: Fix false positive in `module_name_repetitions` lint
2019-04-20 16:58:51 +00:00
Philipp Hansch
158aa39a7c
Allow allowing of toplevel_ref_arg lint
...
I'm not sure why some lints need the `HirId` to be able to recognize the
lint level attributes, but this commit makes the lint level attributes
work for `toplevel_ref_arg`.
2019-04-19 15:18:32 +02:00
Grzegorz
aa9cf07d56
redundant closure for functions restricted to FnDefs
2019-04-19 15:14:49 +02:00
Philipp Hansch
850c24edd3
Fix false positive in module_name_repetitions lint
...
This lint was triggering on modules inside expanded attrs, like
for example `#[cfg(test)]` and possibly more.
2019-04-19 12:53:03 +02:00
bors
12e8075d91
Auto merge of #3989 - flip1995:assert_on_const, r=phansch
...
Don't trigger assertions_on_constants on debug_assert!(false)
Fixes #3948
Fixes #3765
changelog: Fix `debug_assert!` false positive on `assertions_on_constants` lint
2019-04-19 09:57:35 +00:00
Felix Rabe
b4f2200d5c
Typo
2019-04-18 15:08:14 +02:00
flip1995
10cd28900f
Fix dogfood error
2019-04-18 13:37:20 +02:00
André Luis Leal Cardoso Junior
7e9cb5b84a
Add lint PathBufPushOverwrite
2019-04-18 08:05:55 -03:00
flip1995
834ad76806
Remove code duplication
2019-04-18 12:04:46 +02:00
flip1995
40218bae0c
Format code
2019-04-18 11:50:45 +02:00
flip1995
be98df5ac3
Don't lint debug_assert!(false)
2019-04-18 11:47:39 +02:00
bors
b834dbb2d5
Auto merge of #3984 - phansch:bytecount_sugg, r=flip1995
...
Change naive_bytecount applicability to MaybeIncorrect
We can't use `MachineApplicable` here as applying the fix will cause
another error because `bytecount` would first have to be added to the
Cargo.toml.
Example:
```
error: You appear to be counting bytes the naive way
--> $DIR/bytecount.rs:5:13
|
LL | let _ = x.iter().filter(|&&a| a == 0).count(); // naive byte count
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider using the bytecount crate: `bytecount::count(x, 0)`
```
Just replacing it with the suggestion is not enough.
cc #3630
2019-04-18 07:49:09 +00:00
Philipp Hansch
01ea9bd9d8
Change naive_bytecount applicability MaybeIncorrect
...
We can't use `MachineApplicable` here as applying the fix will cause
another error because `bytecount` would first have to be added to the
Cargo.toml.
2019-04-17 20:46:42 +02:00
Matthew Kraai
753c39672e
Use lint pass macros
...
Fixes #3917 .
2019-04-17 09:35:22 -07:00
flip1995
ce87051779
Fix lint_without_lint_pass internal lint
2019-04-17 06:51:21 -07:00
flip1995
840eac2c05
Use {get,match}_def_path from LateContext
2019-04-17 12:53:29 +02:00
flip1995
2f100e04af
Remove uplifted functions {get,match}_def_path from Clippy
2019-04-17 12:51:57 +02:00
bors
27d62cf603
Auto merge of #3966 - flip1995:internal_lints, r=oli-obk
...
Enable rustc internal lints
Closes #3965
I'm not 100% sure if enabling the `-Zunstable-options` flag in the `.cargo/config` file is the right place.
2019-04-17 04:46:19 +00:00
bors
1132caabff
Auto merge of #3975 - phansch:has_placeholders, r=flip1995
...
Change while_let_loop applicability to HasPlaceholders
The suggestion has been changed at some point to use `..` in the suggested code.
Due to that we can't make the lint MachineApplicable anymore.
cc #3630
2019-04-17 01:14:27 +00:00
Philipp Hansch
e974d84d03
while_let_loop uses placeholders in suggestions
...
Due to that we can't make the lint MachineApplicable anymore.
2019-04-16 20:05:16 +02:00
Manish Goregaokar
e9cde416ba
Only suggest .copied() for Option right now
2019-04-15 15:44:09 -07:00
Manish Goregaokar
ad2c65bd1b
Also suggest .copied() when .clone() is called on a Copy type
2019-04-15 14:39:41 -07:00
Manish Goregaokar
d2f7ae70ae
Suggest .copied() instead of .cloned() in map_clone when dealing with references
2019-04-15 14:32:39 -07:00
flip1995
445fa3b529
Deny rustc internal lints
2019-04-15 13:21:52 +02:00
flip1995
5361b842d1
Remove clippy::default_hash_types internal lint
2019-04-15 13:21:52 +02:00
Manish Goregaokar
2156f6733e
Clean up unused cx parameters
2019-04-14 13:23:43 -07:00
Manish Goregaokar
3c93a95b1f
HirIdify ReadVisitor
2019-04-14 13:18:34 -07:00
Manish Goregaokar
0c6956f8ce
Use _from_hir_id APIs
2019-04-14 13:15:20 -07:00
Manish Goregaokar
1b2f2be085
Remove now-unnecessary calls to node_to_hir_id
2019-04-14 13:11:31 -07:00
Philipp Hansch
289a9af801
cargo fmt
2019-04-14 15:07:15 +02:00
Philipp Hansch
ad27e3ff9b
Refactor suspicious_else_formatting using if_chain
2019-04-14 11:12:51 +02:00
Philipp Hansch
96c34e85c4
Remove except
in suspicious_else_formatting
...
This was causing two different ICEs in #3741 .
The first was fixed in #3925 .
The second one is fixed with this commit: We just don't `expect`
anymore. If the snippet doesn't contain an `else`, we stop emitting the
lint because it's not a suspiciously formatted else anyway.
2019-04-14 11:04:41 +02:00
bors
d516925ec8
Auto merge of #3946 - rchaser53:issue-3920, r=flip1995
...
fix format does not parse escaped braces error
related: https://github.com/rust-lang/rust-clippy/issues/3920
2019-04-12 17:03:01 +00:00
rchaser53
db6ca9b8d3
fix format does not parse escaped braces error
2019-04-13 01:39:10 +09:00
flip1995
3fe5eea4e4
Fix get_def_path
...
This fix is obsolet once rust-lang/rust#59779 and #3926 is merged.
2019-04-12 11:59:06 +02:00
bors
2278814c8e
Auto merge of #3931 - phansch:3891, r=flip1995
...
Fix ICE in decimal_literal_representation lint
Handling the integer parsing properly instead of just unwrapping.
Note that the test is not catching the ICE because plain UI tests
[currently hide ICEs][compiletest_issue]. Once that issue is fixed, this
test would fail properly again.
Fixes #3891
[compiletest_issue]: https://github.com/laumann/compiletest-rs/issues/169
2019-04-10 20:57:15 +00:00
Philipp Hansch
ab6b949224
Refactor check_lit method
2019-04-10 21:05:56 +02:00
Tomas Koutsky
603996c9d5
Support updated type dependent def ID getter
2019-04-10 16:18:02 +02:00
Philipp Hansch
1fd2451b90
Code formatting/cleanup
2019-04-10 07:50:34 +02:00
Philipp Hansch
2b0dc39f5b
Don't emit useless_attribute lint in external macros
2019-04-10 07:30:59 +02:00
bors
37f5c1ec73
Auto merge of #3925 - phansch:3741, r=flip1995
...
Fix ICE in suspicious_else_formatting
Fixes #3741
2019-04-09 07:13:08 +00:00
Philipp Hansch
0307ff020c
Fix ICE in decimal_literal_representation lint
...
Handling the integer parsing properly instead of just unwrapping.
Note that the test is not catching the ICE because plain UI tests
[currently hide ICEs][compiletest_issue]. Once that issue is fixed, this
test would fail properly again.
[compiletest_issue]: https://github.com/laumann/compiletest-rs/issues/169
2019-04-08 22:16:34 +02:00
Klemen Košir
560fd163d6
Escape a single quote in single_char_pattern hint
2019-04-08 21:55:50 +09:00
bors
4fdd113bed
Auto merge of #3921 - euclio:single-char-names-multispan, r=flip1995
...
use a multispan for MANY_SINGLE_CHAR_NAMES
2019-04-08 08:42:13 +00:00
bors
e91ba8af85
Auto merge of #3848 - felix91gr:null_transmute, r=flip1995
...
Transmuting known null ptr to ref
Working on implementing #628
2019-04-08 07:20:25 +00:00
bors
42e1cf3763
Auto merge of #3901 - rail-rain:issue_1670, r=flip1995
...
Fix `explicit_counter_loop` suggestion
#1670
This code seems to me to work, but I have two question.
* Because range expression desugared in hir, `Sugg::hir` doesn't add parenthesis to range expression. Which function is better to check range do you think, `check_for_loop_explicit_counter` or `hir_from_snippet`?
* Do you think we need to distinguish between range expression and struct expression that creates `std::ops::Range*`?
2019-04-08 06:28:15 +00:00
Philipp Hansch
547c5c0667
cargo fmt
2019-04-08 07:56:54 +02:00
Philipp Hansch
60c1bb0546
Fix ICE in suspicious_else_formatting
2019-04-07 11:11:06 +02:00
Andy Russell
0d50d44ea6
use a multispan for MANY_SINGLE_CHAR_NAMES
2019-04-05 10:07:39 -04:00
Matthias Krüger
920e47ceb5
NFC: fix typos
2019-04-04 11:15:30 +02:00
Matthias Krüger
c81e43b92c
rustup https://github.com/rust-lang/rust/pull/59657
...
commit: 4122d2221ec65232bc211a266d0796a4713e0d39
2019-04-03 10:48:54 +02:00
Félix Fischer
069957a8ad
Add TransmutingNull Lint
...
* Late Lint pass, catches:
* One liner: 0 -> null -> transmute
* One liner: std:null() -> transmute
* Const (which resolves to null) -> transmute
* UI Test case for Lint
* Updated test for issue 3849, because now the lint that code generated is in Clippy.
* Expanded `const.rs` miri-based Constant Folding code, to cover
raw pointers
2019-04-02 11:39:43 -03:00
Philipp Hansch
b253c564d5
Rustup to https://github.com/rust-lang/rust/pull/58805
2019-04-01 20:37:05 +02:00
Félix Fischer
491f72442e
Updated source to match with recent rustc master
toolchain changes
2019-04-01 20:37:05 +02:00
flip1995
bbb7963735
Fix dogfood error of question_mark lint fix
2019-04-01 20:37:05 +02:00
flip1995
6f01ecfefd
Fix question_mark lint+test
2019-04-01 20:37:05 +02:00
rail
2b82c71b55
use span_lint_and_sugg
in explicit_counter_loop
2019-03-28 08:51:57 +09:00
Félix Fischer
3cff06a0eb
Fix some test failures
2019-03-26 13:57:03 -03:00
Oliver Scherer
d020565ed2
Hacky rustup
2019-03-26 10:55:03 +01:00
Matthias Krüger
b5d82524b4
run cargo fmt
2019-03-23 23:39:58 +01:00
Matthias Krüger
e17dd4efa9
rustup https://github.com/rust-lang/rust/pull/59096/
2019-03-23 23:37:38 +01:00
rail
9698e41994
Change explicit_counter_loop's message to add parentheses if necessary
2019-03-23 15:36:48 +09:00
rail
bd6c2df066
Change explicit_counter_loop's message to reflect original variable name
2019-03-23 15:30:17 +09:00
Mateusz Mikuła
6cb0605600
Cargo fmt
2019-03-18 13:39:11 +01:00
Mateusz Mikuła
664391c5f8
Drop range_contains feature
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
8feb2c6b2f
Fix rustfmt::skip detection
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
fb7699d9e5
Rework clippy detection in attribute lint
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
0ea5e38a9e
name -> check_name
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
4bb6c87b08
span -> span()
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
b25564fc8a
name -> ident_str
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
e63a685412
NestedMetaItemKind -> NestedMetaItem
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
cf71caa71d
Drop redundant &
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
cb3aa7480c
Fix path_qualified
...
As suggested by eddyb
2019-03-18 12:54:10 +01:00
Mateusz Mikuła
9b7ff501a6
Replace most of ty:Ty with Ty
2019-03-18 12:54:10 +01:00
flip1995
4832a853c7
Feed dog
2019-03-16 15:39:02 +01:00
flip1995
180e07e99e
Adapt paths to new formatting
2019-03-16 15:22:31 +01:00
flip1995
3c4616d303
cargo fmt
2019-03-16 11:51:57 +01:00
flip1995
254fad95de
Use LocalInternedString inside of AbsolutePathPrinter
2019-03-16 11:45:29 +01:00
flip1995
dae5c9c685
AbsolutePathBuffer -> AbsolutePathPrinter
2019-03-16 11:17:36 +01:00
flip1995
2d8618e95c
Remove ty::TyKind from eta_reduction and replace it with ty::Ty
2019-03-16 11:10:33 +01:00
flip1995
8eadbfd35b
parent_def_id -> parent
2019-03-15 23:44:04 +01:00
flip1995
dcbd3aefa2
item_path_str -> def_path_str
2019-03-15 23:43:42 +01:00
flip1995
31435cd7f5
Reimplement AbsolutePathBuffer
2019-03-15 23:42:46 +01:00
bors
e7806413c6
Auto merge of #3883 - daxpedda:missing_docs_in_private_items, r=phansch
...
Add `doc(include = ...)` detection to `missing_docs_in_private_items`
The whole `missing documentation in crate` part doesn't have any tests. If I should add test cases tell me.
2019-03-15 06:18:28 +00:00
daxpedda
e1096e3310
Add a test for doc(include)
...
Tiny code improvement.
2019-03-14 19:33:06 +01:00
daxpedda
177b3b27c4
Add doc(include = ...)
detection to missing_docs_in_private_items
2019-03-14 18:32:39 +01:00
bors
9df38117d9
Auto merge of #3877 - rink1969:3842, r=flip1995
...
casting integer literal to float is unnecessary
fix issue https://github.com/rust-lang/rust-clippy/issues/3842
2019-03-14 16:32:15 +00:00
rink1969
d9dd008e44
casting integer literal to float is unnecessary
2019-03-14 15:53:08 +08:00
bors
99fdf2607e
Auto merge of #3873 - phansch:hiridification, r=flip1995
...
Some more HirId-ification
* 8a59f81
: Rename span_lint_node* functions to span_lint_hir*
* a457258
: Use `HirId` instead of `NodeId` for lookup
2019-03-13 08:45:23 +00:00
Philipp Hansch
bf86c1b989
cargo fmt
2019-03-13 06:51:57 +01:00
bors
8fc0a738e3
Auto merge of #3869 - taiki-e:use_self, r=flip1995
...
Fix `use_self` false positive on nested functions
Related to https://github.com/rust-lang/rust-clippy/pull/3640
The current `use_self` warns the following code.
```rust
#![warn(clippy::use_self)]
struct Foo {}
impl Foo {
fn bar() {
fn baz() -> Foo { //^ warning: unnecessary structure name repetition
Foo {} //^ warning: unnecessary structure name repetition
}
}
}
```
2019-03-12 12:09:56 +00:00
bors
3d31c2157a
Auto merge of #3794 - mikerite:fix-3739, r=phansch
...
Fix `boxed_local` suggestion
Don't warn about an argument that is moved into a closure.
ExprUseVisitor doesn't walk into nested bodies so use a new
visitor that collects the variables that are moved into closures.
Fixes #3739
2019-03-12 07:43:14 +00:00
Philipp Hansch
a457258132
Use HirId
instead of NodeId
for lookup
2019-03-12 08:21:22 +01:00
bors
75bfa29533
Auto merge of #3871 - taiki-e:needless_continue, r=phansch
...
Fix `needless_continue` false positive
If the `continue` has a label, check it matches the label of the loop.
Fixes https://github.com/rust-lang/rust-clippy/issues/2329
2019-03-12 07:04:44 +00:00
Philipp Hansch
8a59f81180
Rename span_lint_node* functions to span_lint_hir*
...
Because they now take a `hir_id` instead of a `node_id` argument.
2019-03-12 08:01:21 +01:00
bors
b586d76b43
Auto merge of #3865 - phansch:run_more_doc_tests, r=flip1995
...
Run more doc tests
This executes some more doc tests that were ignored before.
2019-03-12 06:22:00 +00:00
Michael Wright
6937d5581a
Merge branch 'master' into fix-3739
2019-03-12 08:13:44 +02:00
Philipp Hansch
9ca34e37fa
Run more doc tests
...
This executes some more doc tests that were ignored before.
2019-03-12 06:53:25 +01:00
Taiki Endo
1bc7da2fec
Fix needless_continue
false positive
2019-03-12 03:40:30 +09:00
Taiki Endo
187ce4c5ab
Fix use_self
false positive on nested functions
2019-03-11 23:24:49 +09:00
Taiki Endo
4896b259eb
Filter out proc_macro and proc_macro_attribute
2019-03-11 20:45:57 +09:00
flip1995
72aeaa891b
Fix/Ignore doc tests
2019-03-10 23:01:56 +01:00
flip1995
44c46d2059
Run rustfmt
2019-03-10 22:12:26 +01:00
Alexander Regueiro
d2b85323ad
Addressed points raised in review.
2019-03-10 18:06:28 +00:00
Alexander Regueiro
d43966a176
Various cosmetic improvements.
2019-03-10 18:06:28 +00:00
Manish Goregaokar
038ec7f5d8
Move get_unwrap to restriction
...
fixes #3862
2019-03-09 13:48:06 -08:00
bors
ccfbfb8097
Auto merge of #3860 - phansch:refactor_out_opt_def_id, r=flip1995
...
Refactor: Remove utils::opt_def_id
This removes some indirection. Probably this method was uplifted to
rustc at some point?
2019-03-09 12:05:41 +00:00
Philipp Krones
c32135a87f
Rollup merge of #3857 - phansch:document_path_qpath, r=flip1995
...
Document match_path, improve match_qpath docs
Inching towards enabling `#[deny(missing_docs)]` in utils 📜
2019-03-09 12:24:44 +01:00
Philipp Krones
f69351e995
Rollup merge of #3852 - phansch:refactor_assign_ops, r=flip1995
...
Refactor: Cleanup one part of assign_ops lint
Removes a lot of indentation and separates lint emission from lint
logic. Only touches the `hir::ExprKind::AssignOp` part of the lint.
2019-03-09 12:24:43 +01:00
Philipp Krones
1902384d15
Rollup merge of #3851 - phansch:refactor_trait_stuff, r=flip1995
...
Refactor: Extract `trait_ref_of_method` function
This pattern was used in three places after #3844 , so I think it's worth moving it into `utils/mod.rs` and documenting it.
2019-03-09 12:24:42 +01:00
Philipp Hansch
9d97ed6faa
Refactor: Remove utils::opt_def_id
...
This removes some indirection. Probably this method was uplifted to
rustc at some point?
2019-03-08 14:14:41 +01:00
Philipp Hansch
f04acdd463
Document match_path, improve match_qpath docs
2019-03-08 09:50:20 +01:00
Philipp Hansch
9494f22f06
cargo fmt
2019-03-08 09:44:22 +01:00
Philipp Hansch
131b89b54e
fmt
2019-03-08 09:43:36 +01:00
Philipp Krones
837d675afd
Update clippy_lints/src/utils/mod.rs
...
Co-Authored-By: phansch <dev@phansch.net>
2019-03-08 09:40:12 +01:00
Philipp Hansch
65694cc6c8
Fix doctest
2019-03-08 09:10:41 +01:00
Philipp Hansch
5c9221f880
Refactor: Cleanup one part of assign_ops lint
...
Removes a lot of indentation and separates lint emission from lint
logic. Only touches the `hir::ExprKind::AssignOp` part of the lint.
2019-03-08 09:01:29 +01:00
ljedrz
5d78250c75
align with rust-lang/rust/#58992
2019-03-07 21:51:05 +01:00
rchaser53
ae787d954e
fix missing a semicolon
2019-03-07 23:26:47 +09:00
Philipp Hansch
e1d47cd5f1
Refactor: Extract trait_ref_of_method
function
2019-03-07 08:17:43 +01:00
Félix Fischer
ddc718087f
Renamed: Cyclomatic Complexity -> Cognitive Complexity
...
* Ran automatic naming update
* Formalized rename of `cyclomatic_complexity` to `cognitive_complexity`
** Added the rename to `lib.rs`
** Added rename test
* Added warning for deprecated key `cyclomatic_complexity_threshold` and tests for it
* Added deprecation status for Clippy's builtin attribute
* Updated tests for new builtin attribute renaming
2019-03-06 10:07:38 -03:00
Andy Russell
a9de64a151
fix or ignore failing doc tests
2019-03-05 18:45:08 -05:00
Andy Russell
fe96ffeac9
move lint documentation into macro invocations
2019-03-05 18:45:08 -05:00
Philipp Hansch
15cba2e956
Fix missing_const_for_fn for impl trait methods
2019-03-05 08:11:55 +01:00
Philipp Hansch
b87f5bc55a
Don't trigger missing_const_for_fn in external macros
...
As reported in #3841 . Only fixes the part where it triggers on the
`derive`.
2019-03-04 22:56:33 +01:00
Philipp Hansch
68096cf181
fmt fixes
2019-03-03 13:05:39 +01:00
ljedrz
f3363b9cf2
align with rust-lang/rust/#58836
2019-03-01 19:10:14 +01:00
ljedrz
f2587703cc
enable rust-lang/rust#58754
2019-03-01 19:10:14 +01:00
Santiago Pastorino
77a67c914d
Place::Local(x) is now Place::Base(PlaceBase::Local(x))
2019-03-01 12:20:17 -03:00
flip1995
1463d6f69f
Error an unknown or deprecated Clippy attribute
2019-02-28 16:44:42 +01:00
bors
ff2798840c
Auto merge of #3666 - detrumi:map-or-on-non-copy, r=flip1995
...
Only suggest map_or for copy types
Fixes #2686
2019-02-27 08:28:48 +00:00
Philipp Hansch
982a99d2c4
Rustup https://github.com/rust-lang/rust/pull/58321
2019-02-27 07:20:49 +01:00
bors
6e8931c5f5
Auto merge of #3821 - g-bartoszek:redundant_closure-different-borrow-levels, r=oli-obk
...
do not trigger redundant_closure when there is a difference in borrow…
… level between closure parameter and "self", fixes #3802
2019-02-26 17:30:48 +00:00
Wilco Kusee
eb70a72459
Fix false negative
2019-02-26 17:29:36 +01:00
Wilco Kusee
fec6e55d1d
Attempt to fix false negative
2019-02-26 17:27:41 +01:00
Wilco Kusee
4cf720abbe
Move lint_map_unwrap_or to its own file
2019-02-26 17:27:41 +01:00
Wilco Kusee
54ab22f6db
Only suggest map_or for copy types
2019-02-26 17:27:40 +01:00
bors
0957f7d3b7
Auto merge of #3817 - rust-lang:fix-bool_comparison-on-non-bool, r=oli-obk
...
Fix `bool_comparison` with non-`bool` expressions
Fixes #3703 .
It just moves around the type check that was already there for some comparison to all of them, because if one type isn't `bool`, none of those comparison can be simplified.
2019-02-26 15:51:40 +00:00
Grzegorz
a7f4d41a7d
do not trigger redundant_closure when there is a difference in borrow level between closure parameter and "self"
2019-02-26 12:12:27 +01:00
bors
412d41ae86
Auto merge of #3814 - ljedrz:HirIdification_lockstep_upgrade, r=phansch
...
HirIdify some lints
Unblocks https://github.com/rust-lang/rust/pull/58561 (a part of [rust-lang/rust#57578 ](https://github.com/rust-lang/rust/pull/57578 )). Can we branch it like with https://github.com/rust-lang/rust-clippy/pull/3790 ? I can rebase on a different commit if need be.
Haven't had time to run tests yet, so I'd wait for Travis 🙈 .
2019-02-26 10:43:50 +00:00
ljedrz
c1b65ec363
fix line format
2019-02-26 11:21:07 +01:00
Michael Wright
c9d79c0c5e
Remove #[feature(try_from)]
...
`try_from` is now stable.
2019-02-26 08:43:47 +02:00
mcarton
c0c0686a65
Fix bool_comparison
with non-bool
expressions
2019-02-25 22:31:16 +01:00
bors
50d9473856
Auto merge of #3808 - mikerite:useless-format-suggestions, r=oli-obk
...
Fix `useless_format` suggestions
2019-02-25 16:21:26 +00:00
bors
2141ebf695
Auto merge of #3816 - g-bartoszek:redundant_closure_for_macros, r=Manishearth
...
do not trigger redundant_closure for external macros
fixes #3791
2019-02-25 13:46:31 +00:00
Grzegorz
41f197460f
redundant_closure does not trigger for external macros
2019-02-25 13:40:28 +01:00
bors
1ac6f4e9ae
Auto merge of #3772 - flip1995:ice-3719, r=Manishearth
...
Fix ICE #3719+#3718 in lint match_ref_pats
Fixes #3719
This conveniently also fixes #3718
The ICE occurs when the match expression was a macro call, where the macro was defined in another file. Since we don't have the ability to reproduce this behavior with our UI tests (AFAIK), I couldn't add a test reproducing this ICE.. However, I added a test which is related to the ICE, to show the new behavior of the lint.
I tested it with the mscheme repo locally and the ICE didn't happen anymore.
r? @matthiaskrgr
2019-02-25 12:30:35 +00:00
bors
cd29740e6e
Auto merge of #3805 - martinsp:ice-3747, r=Manishearth
...
Fix ICE #3747
I'm not sure if this was the correct approach.
I don't know if I put tests/ui/crashses/ice-3747.rs in correct place because the test always passed when I ran it with `cargo test`, even without the fix applied.
If I run that test with `env CLIPPY_TESTS=true cargo run --bin clippy-driver -- -L ./target/debug tests/ui/crashes/ice-3747.rs` then the test correctly fails without the fix applied
fixes #3747
2019-02-25 12:08:43 +00:00
ljedrz
7bc2e1d60d
fix: replace wrong id
2019-02-25 11:06:46 +01:00
Philipp Hansch
bd949328f1
Make DiagnosticWrapper private
...
It's doesn't have to be public anywhere outside of clippy_lints
2019-02-25 07:19:56 +01:00
ljedrz
8dac8a6ba4
HirIdify some lints
2019-02-24 20:49:43 +01:00
bors
5833e4d26e
Auto merge of #3810 - phansch:refactor/extract_module, r=flip1995
...
Extract diagnostics module and document some functions
This moves the lint building functions from `utils/mod.rs` to their own
`utils/diagnostics.rs` file. Also adds documentation for three of them.
2019-02-24 15:35:01 +00:00
bors
1ce961f083
Auto merge of #3790 - ljedrz:HirIdify_intravisit, r=phansch
...
partially HirIdify lints
Enables https://github.com/rust-lang/rust/pull/58232 (a part of https://github.com/rust-lang/rust/pull/57578 ).
2019-02-24 14:32:55 +00:00
ljedrz
601cbc6d84
fix formatting
2019-02-24 15:16:16 +01:00
Philipp Hansch
7d883cddbc
Extract diagnostics module and document some functions
...
This moves the lint building functions from `utils/mod.rs` to their own
`utils/diagnostics.rs` file. Also adds documentation for three of them.
2019-02-24 14:11:05 +01:00
Philipp Hansch
ff1b1a7c9f
Document some span_lint_*
util functions
2019-02-24 09:49:17 +01:00
Michael Wright
0182a6640e
Fix useless_format
suggestions
2019-02-24 07:30:08 +02:00
Martins Polakovs
391ee7987d
Fix ICE #3747
...
[Martins Polakovs, John Firebaugh]
2019-02-23 21:38:16 +02:00
Michael Wright
5332cdb7dc
Remove unneeded visitor class
...
Use ExprUseVisitor correctly instead.
2019-02-22 07:06:51 +02:00
bors
a5c16e5892
Auto merge of #3789 - bzzzzzz:needless_range_loop_bugfix, r=oli-obk
...
Make needless_range_loop not applicable to structures without iter method
Fixes https://github.com/rust-lang/rust-clippy/issues/3788
Now we will start lint indexed structure only if it has known iter or iter_mut method implemented.
2019-02-21 09:36:13 +00:00
Michael Wright
9d6ecc7485
Fix boxed_local
suggestion
...
Don't warn about an argument that is moved into a closure.
ExprUseVisitor doesn't walk into nested bodies so use a new
visitor that collects the variables that are moved into closures.
Fixes #3739
2019-02-21 06:59:10 +02:00
bzzzz
7767b3a081
Fixed formatting and typo
2019-02-20 10:12:24 -08:00
bors
027dde92e2
Auto merge of #3781 - uniphil:write_with_newline_false_positive, r=oli-obk
...
Don't check [print/write]_with_newline on raw strings
Some tests for #3778 and some maybe-not-the-greatest code that passes those tests!
I didn't run `fmt` because a) it doesn't seem to install on nightly for me, and b) on stable it wanted to apply formatting to over 90 files. Happy to make any tweaks though!
I suspect this contribution may require more than just tweaks. I'm still sort of new to rust so it may not be idiomatic, and the specific approach I took feels a little heavy-handed and brittle. I'm happy to make changes with some guidance, or equally happy if this gives a starting place for someone else to do it better :)
2019-02-20 16:37:32 +00:00
ljedrz
1fac380886
partially HirIdify lints
2019-02-20 13:16:16 +01:00
bors
d5d8d7bca5
Auto merge of #3779 - mikerite:fix-3704, r=phansch
...
Improve `iter_cloned_collect` suggestions
Fixes #3704
2019-02-20 09:21:18 +00:00
bzzzz
f9c6682827
Make needless_range_loop not applicable to structures without iter method
2019-02-20 00:10:25 -08:00
flip1995
75f39881d4
Document the new Sugg
functions
2019-02-19 21:34:14 +01:00
flip1995
87ae6c8bc9
Fix ice-3719
2019-02-19 21:34:14 +01:00
flip1995
1a86d80c10
Implement Sugg::hir_with_macro_callsite
2019-02-19 21:34:14 +01:00
bors
075c212849
Auto merge of #3776 - notriddle:drop-bounds, r=oli-obk
...
Add a lint to warn on `T: Drop` bounds
**What it does:** Checks for generics with `std::ops::Drop` as bounds.
**Why is this bad?** `Drop` bounds do not really accomplish anything.
A type may have compiler-generated drop glue without implementing the
`Drop` trait itself. The `Drop` trait also only has one method,
`Drop::drop`, and that function is by fiat not callable in user code.
So there is really no use case for using `Drop` in trait bounds.
**Known problems:** None.
**Example:**
```rust
fn foo<T: Drop>() {}
```
Fixes #3773
2019-02-19 09:46:29 +00:00
Manish Goregaokar
68476e1d13
Rustup to rustc 1.34.0-nightly (32471f7ea 2019-02-19)
2019-02-19 13:04:43 +05:30
Michael Howell
bc4c3b6ff1
Add more descriptive details
2019-02-18 19:37:08 -07:00
phil
ef72b2cac0
Check {print,write}_with_newline for literal newline
...
Both regular strings and raw strings can contain literal newlines. This commit
extends the lint to also warn about terminating strings with these.
Behaviour handling for raw strings is also moved into `check_newlines` by
passing in the `is_raw` boolean from `check_tts` as
[suggested](https://github.com/rust-lang/rust-clippy/pull/3781#pullrequestreview-204663732 )
2019-02-18 19:22:20 -05:00
Daniel Wagner-Hall
4009a44118
Fix Binding for rustc update
2019-02-18 23:16:53 +00:00
Daniel Wagner-Hall
bcefd688c9
Restore tests
...
Also, fix existing test
2019-02-18 22:56:43 +00:00
Daniel Wagner-Hall
422c9a0fa2
wildcard_enum_match_arm gives suggestions
...
And is also more robust
2019-02-18 22:56:43 +00:00
phil
3fa3bd8e94
Don't fail for raw string ending in \n
...
Pass tests for #3778 , {print,write}_with_newline false positive
This change guards the lint from checking newlines with a sort of complicated
check to see if it's a raw string. Raw strings shouldn't be newline-checked,
since r"\n" is literally \-n, not a newline. I think it's ok not to check for
_literal_ newlines at the end of raw strings, but maybe that's debatable.
I... don't think this code is that great. I wanted to write the check after
`check_tts`, but that was too late -- raw string type info is lost (or I
couldn't find it). Putting it inside `check_tts` feels heavy-duty and the check
itself feels like a brittle reach possibly into places it shouldn't.
Maybe someone can fix this up :)
2019-02-18 11:39:40 -05:00
Eduardo Pinho
8994466bfe
Format transmute_from_int_to_float
docs
2019-02-18 15:09:34 +00:00
Eduardo Pinho
74ac35bcab
Update why transmute_int_to_float is bad
...
Fix #3550
2019-02-18 14:14:54 +00:00
Michael Wright
9185c8d996
Format
2019-02-18 08:32:53 +02:00
Michael Howell
2df14c3701
Add a lint to warn on T: Drop
bounds
...
**What it does:** Checks for generics with `std::ops::Drop` as bounds.
**Why is this bad?** `Drop` bounds do not really accomplish anything.
A type may have compiler-generated drop glue without implementing the
`Drop` trait itself. The `Drop` trait also only has one method,
`Drop::drop`, and that function is by fiat not callable in user code.
So there is really no use case for using `Drop` in trait bounds.
**Known problems:** None.
**Example:**
```rust
fn foo<T: Drop>() {}
```
2019-02-17 22:53:08 -07:00
Michael Wright
6e7a813ed2
Improve iter_cloned_collect
suggestions
...
Fixes #3704
2019-02-18 07:30:50 +02:00
Timo
99eccaa120
Add a semicolon as suggested
2019-02-17 22:14:38 -05:00
Timo
508b41ecef
Fix typo in documentation for float_cmp_const lint
2019-02-17 21:06:29 -05:00
flip1995
f204b7ec76
Fix ICE #3717
...
Restore the old `TypeckTables` in visit_body after walking the body
2019-02-17 01:50:13 +01:00
flip1995
10811d5d89
Fix breakage from rust-lang/rust#58296
2019-02-14 14:01:43 +01:00
Michael Wright
533dd360d7
Fix breakage due to rust-lang/rust#58167
2019-02-14 08:55:50 +02:00
flip1995
5a3cd31c9e
Rustup
...
cc rust-lang/rust#58137
2019-02-13 22:08:17 +01:00
bors
db13e6fa34
Auto merge of #3756 - g-bartoszek:redundant-closure-for-methods, r=oli-obk
...
Redundant closure for methods
fixes #3469
2019-02-12 13:31:44 +00:00
bors
ed3287605d
Auto merge of #3757 - mikerite:fix-2542, r=oli-obk
...
Fix `needless_range_loop` bad suggestion
Detect if the index variable is used inside a closure.
Fixes #2542
2019-02-12 10:27:18 +00:00
bors
2066368583
Auto merge of #3758 - phansch:document_macro, r=flip1995
...
Document `declare_clippy_lint` macro
Split up from my work on updating CONTRIBUTING.md, which is slowly
making progress.
cc #2666
2019-02-11 23:52:52 +00:00
Philipp Hansch
a14247b500
Update comment regarding crate level cfg_attr
2019-02-11 22:32:54 +01:00
Philipp Hansch
7d3983216f
Document some more core functions
2019-02-11 08:34:37 +01:00
Philipp Hansch
a27022e0dc
Document declare_clippy_lint
macro
...
Split up from my work on updating CONTRIBUTING.md, which is slowly
making progress.
cc #2666
2019-02-11 08:34:37 +01:00
Michael Wright
217965e855
Fix needless_range_loop
bad suggestion
...
Detect if the index variable is used inside a closure.
Fixes #2542
2019-02-11 07:03:12 +02:00
bors
2755d12fa6
Auto merge of #3744 - phansch:fix3144, r=oli-obk
...
Fix ICE in needless_pass_by_value lint
If I understand it correctly, we were first creating a type with a
`RegionKind::ReErased` region and then deleted it again in
`util::implements_trait` with:
cx.tcx.erase_regions(&ty);
causing the type query to fail.
It looks like using `ReEmpty` works around that deletion.
Fixes #3144
2019-02-10 13:39:46 +00:00
bors
af43950143
Auto merge of #3740 - flip1995:const_assert_macro, r=oli-obk
...
Macro check for assertion_on_constants lint
The `assertion_on_constants` lint currently has following output for this code [Playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=6f2c9df6fc50baf847212d3b5136ee97 ):
```rust
macro_rules! assert_const {
($len:expr) => {
assert!($len > 0);
}
}
fn main() {
assert_const!(3);
assert_const!(-1);
}
```
```
warning: assert!(const: true) will be optimized out by the compiler
--> src/main.rs:3:9
|
3 | assert!($len > 0);
| ^^^^^^^^^^^^^^^^^^
...
8 | assert_const!(3);
| ---------------- in this macro invocation
|
= note: #[warn(clippy::assertions_on_constants)] on by default
= help: remove it
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants
warning: assert!(const: false) should probably be replaced
--> src/main.rs:3:9
|
3 | assert!($len > 0);
| ^^^^^^^^^^^^^^^^^^
...
9 | assert_const!(-1);
| ----------------- in this macro invocation
|
= help: use panic!() or unreachable!()
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants
```
This is contradictory. This lint should not trigger if the `assert!` is in a macro itself.
2019-02-10 12:47:16 +00:00
Grzegorz
16881390e1
removing redundant closures in the whole project
2019-02-10 13:35:44 +01:00
Grzegorz
b38c587b98
redundant closure implemented for closures containing method calls
2019-02-10 12:58:51 +01:00
bors
5725726345
Auto merge of #3751 - h-michael:opt-def-id, r=phansch
...
Use Hir::Def opt_def_id
related with: https://github.com/rust-lang/rust-clippy/pull/3750#issuecomment-462010225
Using `def.opt_def_id` in `opt_def_id` before replacing all all at once.
2019-02-09 12:01:45 +00:00
Hirokazu Hata
71dfbe2072
Use Hir::Def opt_def_id
2019-02-09 13:28:21 +09:00
bors
77435f9938
Auto merge of #3748 - phansch:uitest, r=oli-obk
...
Add a uitest subcommand to simplify UI test invocation
This makes running single tests a lot easier.
It's now
`TESTNAME=xxx cargo uitest`
instead of
`TESTNAME=xxx cargo test --test compile-test`
2019-02-09 04:09:25 +00:00
Hirokazu Hata
66f8fa320b
Add new Def type ConstParam
2019-02-09 11:42:13 +09:00
Philipp Hansch
f934f98111
Add a uitest subcommand to simplify UI test invocation
...
This allows to run
`TESTNAME=xxx cargo uitest`
instead of
`TESTNAME=xxx cargo test --test-compile-test`
2019-02-08 08:09:37 +01:00
bors
e176324fc5
Auto merge of #3665 - jsgf:master, r=oli-obk
...
Start making clippy easier to invoke in non-cargo contexts
Clippy (clippy-driver) currently has a couple of strong but unnecessary couplings with cargo. This series:
1. makes detection of check builds more robust, and
2. make clippy-driver use the --sysroot specified on the command line as its internal sysroot.
2019-02-06 15:43:07 +00:00
Philipp Hansch
f3cd81980d
Fix ICE in needless_pass_by_value lint
...
If I understand it correctly, we were first creating a type with a
`RegionKind::ReErased` region and then deleted it again in
`util::implements_trait` with:
cx.tcx.erase_regions(&ty);
causing the type query to fail.
It looks like using `ReEmpty` works around that deletion.
2019-02-06 09:18:35 +01:00
flip1995
446e2ecfb7
Don't warn about const assertions when assert is in a macro itself
2019-02-05 19:37:50 +01:00
bors
4259377ea6
Auto merge of #3725 - mikerite:fix-2728, r=phansch
...
Fix `cast_sign_loss` false positive
This checks if the value is a non-negative constant before linting about
losing the sign.
Because the `constant` function doesn't handle const functions, we check if
the value is from a call to a `max_value` function directly. A utility method
called `get_def_path` was added to make checking for the function paths
easier.
Fixes #2728
2019-02-04 05:52:44 +00:00
Michael Wright
f3ee53d225
Document get_def_path
2019-02-04 07:30:24 +02:00
rhysd
83d620b824
run util/dev update_lints
and cargo fmt --all
2019-02-03 21:56:24 +09:00
rhysd
4b736ff29b
Merge branch 'master' into issue3721
2019-02-03 21:27:23 +09:00
rhysd
60f723fba4
prefer if
to match
2019-02-03 18:50:00 +09:00
rhysd
3100fecb99
use snippet for making a suggestion if possible
2019-02-03 18:28:42 +09:00
Michael Wright
c02367c4e9
Fix breakage due to rust-lang/rust#58079
...
The rustc change added HirId to a few nodes. As I understand it, the plan is
to remove the NodeId from these nodes eventually. Where the NodeId was
not being matched, I used `..` to try and avoid further breakage. Where it
was, I used `_` to make the fix easier when NodeId is removed.
2019-02-03 09:12:07 +02:00
Jeremy Fitzhardinge
86c513e605
Let CLIPPY_CONF_DIR be used to start search for config, and fall back to
...
CARGO_MANIFEST_DIR if it isn't set. If CARGO_MANIFEST_DIR isn't set, fall back
"." rather than panicing.
Issue #3663
2019-02-02 11:43:21 -08:00
bors
27b5dd8886
Auto merge of #2857 - avborhanian:master, r=phansch
...
Adding lint test for excessive LOC.
This is a WIP for #2377 . Just wanted to pull in because I had a few questions:
1. Is it okay that I'm approaching this via counting by looking at each line in the snippet instead of looking at the AST tree? If there's another way to do it, I want to make sure I'm doing the correct way, but I wasn't sure since the output AST JSON doesn't seem to contain whitespace.
2. My function is definitely going to trigger the lint, so also wanted to see if there was something obvious I could do to reduce it.
3. Are the two tests fine, or is there something obvious I'm missing?
4. Obviously bigger question - am I approaching the line count correctly. Current strategy is count a line if it contains some code, so skip if it's just comments or empty.
2019-02-02 08:32:27 +00:00
rhysd
54d49af3ff
add more test cases for dbg_macro rule
2019-02-02 04:54:51 +09:00
Philipp Hansch
ac9472d16e
Update clippy_lints/src/types.rs
...
Co-Authored-By: avborhanian <avborhanian@gmail.com>
2019-02-01 14:53:15 -05:00
Philipp Hansch
a022d47a6b
Update clippy_lints/src/types.rs
...
Co-Authored-By: avborhanian <avborhanian@gmail.com>
2019-02-01 14:52:56 -05:00
rhysd
268ff85326
use span_help_and_lint() instead of span_lint_and_sugg()
2019-02-02 04:52:21 +09:00
Unknown
93a856e9d5
Changing single character string to a character match.
2019-02-01 13:21:19 -05:00
Unknown
6931b0f5a1
rustfmt
2019-02-01 13:21:19 -05:00
Araam Borhanian
5e10809ac3
Adding lint for too many lines.
2019-02-01 13:21:19 -05:00
Unknown
44c835feea
Skipping check if in external macro.
2019-02-01 13:21:19 -05:00
Unknown
c1f4e18453
Adding back tests, but also reducing threshold by 1
2019-02-01 13:21:19 -05:00
Unknown
e583f35b3a
rustfmt
2019-02-01 13:21:19 -05:00
Unknown
7fbd55c329
Reworking function logic, and adding doc example.
...
This should fix line count logic issues that the previous code had, with assumptions it would make.
2019-02-01 13:21:19 -05:00
Araam Borhanian
1169066a0b
Adding lint for too many lines.
2019-02-01 13:21:19 -05:00
Philipp Hansch
38347bad38
Make vec_box MachineApplicable
2019-02-01 18:18:45 +01:00
Philipp Hansch
4aff8711f0
Fix ICE in vec_box lint and add run-rustfix
...
`hir::Ty` doesn't seem to know anything about type bounds and
`cx.tcx.type_of(def_id)` caused an ICE when it was passed a generic type
with a bound:
```
src/librustc_typeck/collect.rs:1311: unexpected non-type Node::GenericParam: Type { default: None, synthetic: None }
```
Converting it to a proper `Ty` fixes the ICE and catches a few more
places where the lint applies.
2019-02-01 18:18:45 +01:00
bors
5176a5c4b7
Auto merge of #3726 - phansch:some_renaming, r=oli-obk
...
Some renamings: s/ast_ty/hir_ty and s/StructField/hir::StructField
I think in both cases the new names make the code more understandable.
For `StructField` specifically because there's one in
[`syntax::ast`][ast] and one in [`rustc::hir`][hir].
[ast]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ast/struct.StructField.html
[hir]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.StructField.html
2019-02-01 08:36:11 +00:00
Michael Wright
b6c3a6a09f
Move max_value
handling to consts module
2019-02-01 06:32:16 +02:00
rhysd
b52a9bd966
cargo +nightly fmt
at clippy_lints/
2019-02-01 12:03:13 +09:00
rhysd
06e4e9cf27
remove TODO comment which was already done
2019-02-01 11:40:02 +09:00
rhysd
9d130a546f
add dbg_macro rule to CHANGELOG.md and update count in README
2019-02-01 11:32:22 +09:00
rhysd
7ec5528e0c
fix category and use suggestion
2019-02-01 09:31:26 +09:00
Philipp Hansch
ee7bad455b
Some renamings: s/ast_ty/hir_ty and s/StructField/hir::StructField
...
I think in both cases the new names make the code more understandable.
For `StructField` specifically because there's one in
[`syntax::ast`][ast] and one in [`rustc::hir`][hir].
[ast]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ast/struct.StructField.html
[hir]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.StructField.html
2019-01-31 07:25:47 +01:00
Michael Wright
3cf8c0b3b5
Fix cast_sign_loss
false positive
...
This checks if the value is a non-negative constant before linting about
losing the sign.
Because the `constant` function doesn't handle const functions, we check if
the value is from a call to a `max_value` function directly. A utility method
called `get_def_path` was added to make checking for the function paths
easier.
Fixes #2728
2019-01-31 06:32:29 +02:00
rhysd
f894adce8c
implement dbg_macro rule ( fixes #3721 )
2019-01-31 02:39:38 +09:00
Alex Hamilton
587492b5d2
wildcard_match_arm: add nesting issue to known.
2019-01-29 15:33:04 -06:00
Alex Hamilton
efaed8e0c0
wildcard_match_arm: lint only enum matches.
2019-01-29 15:33:04 -06:00
Alex Hamilton
6bc4416b2b
wilcard_match_arm: run rustfmt.
2019-01-29 15:33:04 -06:00
Alex Hamilton
c75dfeb29b
wildcard_match_arm: add lint properly.
2019-01-29 15:33:04 -06:00
Alex Hamilton
23eae0909d
wildcard_match_arm: rename function.
...
We also don't need `ex` as an argument.
2019-01-29 15:33:04 -06:00
Alex Hamilton
20ba476ea8
wildcard_match_arm: expand lint scope.
...
We're not only working with Results.
2019-01-29 15:33:04 -06:00
Alex Hamilton
1b3c3d073a
Change match_wild lint name to WILDCARD_MATCH_ARM.
...
Also fix message capitalization.
2019-01-29 15:33:04 -06:00
Alex Hamilton
0da18677f7
Add match_wild lint ( #3649 ).
...
This lint prevents using a wildcard in a match.
2019-01-29 15:33:04 -06:00
bors
6b1a2a9c3e
Auto merge of #3648 - phansch:const_fn_lint, r=oli-obk
...
Add initial version of const_fn lint
This adds an initial version of a lint that can tell if a function could be `const`.
TODO:
- [x] Finish up the docs
- [x] Fix the ICE
cc #2440
2019-01-29 19:58:13 +00:00
Philipp Hansch
d0d7c5e922
cargo fmt
2019-01-29 19:56:19 +01:00
Philipp Hansch
aed001b8d4
Update various docs
...
* `const_transmute` currently also seems to depend on the `const_fn`
feature.
* Only `Sized` is currently allowed as a bound, not Copy.
2019-01-29 08:19:05 +01:00
Philipp Hansch
0c6bdda562
Use built-in entry_fn detection over self-built
2019-01-29 08:19:05 +01:00
Philipp Hansch
c0a02691d8
cargo fmt
2019-01-29 08:19:05 +01:00
Philipp Hansch
f9d65b6356
Reorganize conditionals: Run faster checks first
2019-01-29 08:19:05 +01:00
Philipp Hansch
68cc4df551
Maybe fix ICE?
2019-01-29 08:19:05 +01:00
Philipp Hansch
c3980bf0bc
Add initial version of const_fn lint
2019-01-29 08:19:05 +01:00
Michael Wright
df04238d3a
Fix unit_arg
false positive
...
Ignore arguments with the question mark operator.
Closes #2945
2019-01-29 07:22:08 +02:00
bors
410d5ba6c3
Auto merge of #3700 - phansch:would_you_like_some_help_with_this_const_fn, r=oli-obk
...
Prevent incorrect cast_lossless suggestion in const_fn
`::from` is not a const fn, so applying the suggestion of
`cast_lossless` would fail to compile. The fix is to skip the lint if
the cast is found inside a const fn.
Fixes #3656
2019-01-28 14:30:18 +00:00
Oliver Scherer
60332941c9
Rustfmt
2019-01-28 11:32:41 +01:00
Oliver Scherer
c67a05166f
Check hypothetically failing conversion
2019-01-28 10:32:34 +01:00
Oliver Scherer
7b90cb529a
Update more changed iterator paths
2019-01-28 10:16:34 +01:00
Oliver Scherer
dc8c7b1677
Atomics constants are now handled by the deprecation lint
2019-01-28 10:10:27 +01:00
Oliver Scherer
36245feeb0
Update changed iterator paths
2019-01-28 10:09:45 +01:00
Oliver Scherer
b08964b3bd
Update const slice processing
2019-01-28 10:09:34 +01:00
bors
62f40e28b9
Auto merge of #3706 - robamler:patch-1, r=phansch
...
Fix documentation for `slow_vector_initialization`
This PR fixes the documentation for the lint `slow_vector_initialization`. The documentation recommended writing `vec![len; 0]` but the correct solution is `vec![0; len]`.
2019-01-27 13:34:47 +00:00
Matthias Krüger
79b1d9adf0
run cargo fmt
2019-01-27 13:34:23 +01:00
Matthias Krüger
3a96d6b603
rustup https://github.com/rust-lang/rust/pull/57907/
...
for file in `fd \.rs$` ; do sed -i s/span_suggestion_with_applicability/span_suggestion/g $file ; done
for file in `fd \.rs$` ; do sed -i s/span_suggestion_short_with_applicability/span_suggestion_short/g $file ; done
for file in `fd \.rs$` ; do sed -i s/span_suggestions_with_applicability/span_suggestions/g $file ; done
2019-01-27 13:33:56 +01:00
Robert Bamler
14e27f567a
Fix documentation for slow_vector_initialization
...
Change the recommended solution from `vec![len; 0]` to `vec![0; len]`.
Also fix grammar.
2019-01-26 20:26:38 -08:00
Matthias Krüger
e9e0a7e3bd
rustup https://github.com/rust-lang/rust/pull/57726
2019-01-27 01:42:34 +01:00
bors
33a0fe7b2c
Auto merge of #3690 - mikerite:fix-3630-expect-fun-call, r=phansch
...
Fix `expect_fun_call` lint suggestions
This commit corrects some bad suggestions produced by the
`expect_fun_call` lint and enables `rust-fix` checking on the tests.
Addresses #3630
2019-01-26 10:57:39 +00:00
Philipp Hansch
8c416c3197
Prevent incorrect cast_lossless suggestion in const_fn
...
`::from` is not a const fn, so applying the suggestion of
`cast_lossless` would fail to compile. The fix is to skip the lint if
the cast is found inside a const fn.
2019-01-26 10:57:15 +01:00
Michael Wright
18cacbabb4
Incorporate review suggestions
2019-01-26 11:55:54 +02:00
Sorin Davidoi
1fe0cf6f07
chore(cargo/dependencies/cargo-metadata): Upgrade to 0.7.1
...
Closes https://github.com/rust-lang/rust-clippy/issues/3692 .
2019-01-25 21:53:44 +01:00
Philipp Hansch
0bac0149e7
Rustup
...
Due to https://github.com/rust-lang/rust/pull/51285
2019-01-24 20:32:18 +01:00
Michael Wright
5284b95a06
Fix expect_fun_call
lint suggestions
...
This commit corrects some bad suggestions produced by the
`expect_fun_call` lint and enables `rust-fix` checking on the tests.
Addresses #3630
2019-01-24 06:58:53 +02:00
A.A.Abroskin
c771f339d7
allow assertions_on_constants for collapsible_if and missing_test_files
2019-01-23 17:58:33 +03:00
A.A.Abroskin
f11d993c0f
Merge branch 'master' into add-lints-aseert-checks
...
* master: (58 commits)
Rustfmt all the things
Don't make decisions on values that don't represent the decision
Improving comments.
Rustup
Added rustfix to the test.
Improve span shortening.
Added "make_return" and "blockify" convenience methods in Sugg and used them in "needless_bool".
Actually check for constants.
Fixed potential mistakes with nesting. Added tests.
formatting fix
Update clippy_lints/src/needless_bool.rs
formatting fix
Fixing typo in CONTRIBUTING.md
Fix breakage due to rust-lang/rust#57651
needless bool lint suggestion is wrapped in brackets if it is an "else" clause of an "if-else" statement
Fix automatic suggestion on `use_self`.
Remove negative integer literal checks.
Fix `implicit_return` false positives.
Run rustfmt
Fixed breakage due to rust-lang/rust#57489
...
2019-01-23 11:36:12 +03:00
bors
a069320fd7
Auto merge of #3684 - g-bartoszek:sugg-snippet-modifications, r=phansch
...
"make_return" and "blockify" convenience methods, fixes #3683
…ed them in "needless_bool".
2019-01-22 20:18:11 +00:00
bors
a40d8e4479
Auto merge of #3679 - daxpedda:use_self, r=phansch
...
Fix automatic suggestion on `use_self`.
In an example like this:
```rust
impl Example {
fn fun_1() { }
fn fun_2() {
Example::fun_1();
}
}
```
Clippy tries to replace `Example::fun_1` with `Self`, loosing `::fun_1` in the process, it should rather try to replace `Example` with `Self`.
**Question**
- There may be other paths that need the same treatment, but I'm not sure I understand them fully:
- e648adf086/clippy_lints/src/use_self.rs (L94-L96)
- e648adf086/clippy_lints/src/use_self.rs (L225-L229)
2019-01-22 19:18:39 +00:00
Oliver Scherer
d6c806378e
Rustfmt all the things
2019-01-22 16:27:42 +01:00
Oliver Scherer
38cdf63acf
Don't make decisions on values that don't represent the decision
2019-01-22 15:28:51 +01:00
daxpedda
42d5a07f0c
Improving comments.
2019-01-22 15:23:45 +01:00
Oliver Scherer
3168023cc8
Rustup
2019-01-22 15:17:05 +01:00
Philipp Krones
e70f9456fc
Improve span shortening.
...
Co-Authored-By: daxpedda <1645124+daxpedda@users.noreply.github.com>
2019-01-22 14:43:59 +01:00
Grzegorz Bartoszek
0f5c43a722
Added "make_return" and "blockify" convenience methods in Sugg and used them in "needless_bool".
2019-01-22 14:07:53 +01:00
bors
9d5b148648
Auto merge of #3677 - daxpedda:integer_arithmetic, r=oli-obk
...
Remove negative integer literal checks.
Fixes #3678 .
2019-01-21 15:07:22 +00:00
daxpedda
87d24e1fc9
Actually check for constants.
2019-01-21 13:59:49 +01:00
bors
e0bcec717a
Auto merge of #3676 - daxpedda:implicit_return, r=oli-obk
...
Fix `implicit_return` false positives.
Fixes the following false positives:
- linting on `if let` without `else` in a `loop` even with a present `return`
- linting on `unreachable!()`
2019-01-21 12:25:45 +00:00
daxpedda
2e0977f3b4
Fixed potential mistakes with nesting. Added tests.
2019-01-21 13:06:32 +01:00
bors
54978a571c
Auto merge of #3680 - g-bartoszek:needless-bool-else-if-brackets, r=oli-obk
...
needless bool lint suggestion is wrapped in brackets if it is an "els…
…e" clause of an "if-else" statement
2019-01-21 11:47:06 +00:00
Grzegorz Bartoszek
34785a12f4
formatting fix
2019-01-21 12:04:25 +01:00
Oliver Scherer
4532073a29
Update clippy_lints/src/needless_bool.rs
...
Co-Authored-By: g-bartoszek <grzegorz.bartoszek@thaumatec.com>
2019-01-21 11:41:33 +01:00
Grzegorz Bartoszek
0a0792e535
formatting fix
2019-01-21 11:14:34 +01:00
Michael Wright
a747dbb04f
Fix breakage due to rust-lang/rust#57651
2019-01-20 22:56:07 +02:00
Grzegorz Bartoszek
adce3ef966
needless bool lint suggestion is wrapped in brackets if it is an "else" clause of an "if-else" statement
2019-01-20 16:15:00 +01:00
daxpedda
13b5ea4223
Fix automatic suggestion on use_self
.
2019-01-20 14:50:26 +01:00
daxpedda
0555ca1c2d
Remove negative integer literal checks.
2019-01-20 14:18:31 +01:00
daxpedda
2183cfcc13
Fix implicit_return
false positives.
2019-01-20 13:45:22 +01:00
Michael Wright
8747691bea
Run rustfmt
2019-01-20 12:49:45 +02:00
Michael Wright
f51f0178dd
Fixed breakage due to rust-lang/rust#57489
2019-01-20 12:21:30 +02:00
Michael Wright
77b71a1af2
Fix breakage due to rust-lang/rust#57755
2019-01-20 10:14:23 +02:00
bors
e648adf086
Auto merge of #3674 - sinkuu:fmt_rustup, r=oli-obk
...
Catch up with `format_args` change
Catches up with a change in rust-lang/rust#57537 . (Since the optimization is optional, this clippy PR can be merged before the rustc PR.)
Happened to fix a bug in `expect_fun_call`, that is the lint ignores more than
one arguments to `format`.
```
warning: use of `expect` followed by a function call
--> src/main.rs:2:17
|
2 | Some("foo").expect(format!("{} {}", 1, 2).as_ref());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("{} {}", 1))`
|
```
2019-01-19 12:40:46 +00:00
Shotaro Yamada
2ee713dc7b
Catch up with format_args
change
...
Catches up with a change in rust-lang/rust#57537
Happened to fix a bug in `expect_fun_call`, that is the lint ignores more than
one arguments to `format`.
2019-01-19 21:18:31 +09:00
bors
751d82e825
Auto merge of #3672 - mikerite:fix-3670, r=oli-obk
...
Fix bad `while_let_on_iterator` suggestion.
Don't suggest a `for` loop if the iterator is used inside the `while` loop.
Closes #3670
2019-01-19 11:12:03 +00:00
Michael Wright
a773276da3
Fix bad while_let_on_iterator
suggestion.
...
Don't suggest a `for` loop if the iterator is used inside the `while` loop.
Closes #3670
2019-01-19 11:36:27 +02:00
Matthias Krüger
de9c09e2bd
rustup https://github.com/rust-lang/rust/pull/57747
2019-01-19 09:27:45 +01:00
Andy Russell
8fba46aa27
add applicability to lint name suggestion
2019-01-16 15:29:37 -05:00
Michael Wright
f96dc2e9e2
Remove map_clone
fixed known problem
2019-01-15 08:15:12 +02:00
Michael Wright
67a9f20c91
Fix map_clone
bad suggestion
...
`cloned` requires that the elements of the iterator must be references. This
change determines if that is the case by examining the type of the closure
argument and suggesting `.cloned` only if it is a reference. When the closure
argument is not a reference, it suggests removing the `map` call instead.
A minor problem with this change is that the new check sometimes overlaps
with the `clone_on_copy` lint.
Fixes #498
2019-01-15 08:09:47 +02:00
bors
19553aee2c
Auto merge of #3657 - roblabla:bugfix-missing-docs-global-asm, r=phansch
...
Missing docs: don't require documenting Global Asm items.
global_asm! items cannot be documented, the lint still gets triggered after adding documentation to the macro invocation. Furthermore, even if we could add documentation to the AST node, rustdoc doesn't render it anyways.
Playground example: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=5182df182f0ffbbab4c3107e43368ac3
2019-01-14 14:50:27 +00:00
bors
11ba624e38
Auto merge of #3653 - gendx:master, r=phansch
...
Fix typos in clippy_lints/src/len_zero.rs
Some comments in the len_zero lint had typos.
2019-01-14 09:16:20 +00:00
bors
ec1a6cb442
Auto merge of #3658 - detrumi:add-several-run-rustfix-annotations, r=phansch
...
Add several run rustfix annotations
Adds `run-rustfix` to 18 of the tests from the tracking issue #3630 .
Each test has its own commit, to make reviewing easier (hopefully this is easier to review than 18 separate PRs).
## Changes
- `cfg_attr_rustfmt`: Custom inner attributes are unstable. Let's disable the lint for inner attributes until [#54726 ](https://github.com/rust-lang/rust/issues/54726 ) stabilizes
- `collapsible_if`: unrelated cyclomatic_complexity warning that can be ignored
- `duration_subsec`: Simply needed `#![allow(dead_code)]`
- `excessive_precision`: Fixed by `#!allow(dead_code,unused_variables)`
- `explicit_write`: Fixed by `#![allow(unused_imports)]`
- `inconsistent_digit_grouping`: Avoid triggering `clippy::excessive_precision` lint
- `infallible_destructuring_match`: Fixed by `#![allow(dead_code, unreachable_code, unused_variables)]`
- `into_iter_on_ref`: Triggered unrelated `clippy::useless_vec` lint
- `large_digit_groups`: Avoid triggering `clippy::excessive_precision` lint
- `map_clone`: Fixed by `#![allow(clippy::iter_cloned_collect)]`
- `mem_replace`: Suggestion causes import to be unused, fixed by `#![allow(unused_imports)]`
- `precedence`: Allow some unrelated lints, and change out-of-range `0b1111_1111i8` literal
- `redundant_field_names`: Allow dead code, and remove stabilized feature toggles
- `replace_consts`: Fixed by `#![allow(unused_variables)]`
- `starts_ends_with`: Fixed by `#![allow(unused_must_use)]`
- `types`: Fixed by `#![allow(dead_code, unused_variables)]`
- `unit_arg`: Fixed by `#[allow(unused_must_use)]`
- `unnecessary_fold`: Fixed by adding type annotations and adding `#![allow(dead_code)]`
2019-01-14 08:16:51 +00:00
roblabla
79203653d1
Missing docs: don't require documenting Global Asm items.
...
global_asm! items cannot be documented, the lint still gets triggered
after adding documentation to the macro invocation. Furthermore, even
if we could add documentation to the AST node, rustdoc doesn't render
it anyways.
Playground example: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=5182df182f0ffbbab4c3107e43368ac3
2019-01-13 16:22:48 +00:00
Wilco Kusee
ea7eb49b47
Disable deprecated_cfg_attr lint for inner attributes
2019-01-13 11:53:43 +01:00
Matthias Krüger
079a593dab
rustup: the features if_while_or_patterns has been stabilized
2019-01-12 16:11:17 +01:00
Guillaume Endignoux
798a419b1c
Fix comments in clippy_lints/src/len_zero.rs
2019-01-10 22:48:44 +01:00
A.A.Abroskin
a9f8d3c8fd
add assert(true/false, some message) tests
2019-01-09 21:30:47 +03:00
Abroskin Alexander
7075015f31
Merge branch 'master' into add-lints-aseert-checks
2019-01-09 13:49:40 +03:00
A.A.Abroskin
906b51637c
change assert_checks to assertions_on_constants
2019-01-09 13:38:38 +03:00
Philipp Hansch
38d4ac7cea
Remove all copyright license headers
...
Discussion previously happened in https://github.com/rust-lang/rust/pull/43498
2019-01-08 21:46:39 +01:00
bors
5b8496603c
Auto merge of #3640 - detrumi:nested_use_self, r=flip1995
...
Restrict `use_self` on nested items
Fixes #3637
Fixes #3463
These changes make it so that nested items aren't visited any more by the `use_self` lint.
I think visiting nested items should be possible (so that it uses a different `item_path` for the nested item), but I'm not sure whether it's viable and what the best approach would be.
- Can `item_path` be changed to a new `Self` path before visiting the item, and then changing it back afterwards?
- Alternatively, could a new visitor be created, re-using `check_trait_method_impl_decl`?
2019-01-07 18:54:28 +00:00
bors
140c1650e8
Auto merge of #3600 - xfix:cast-ref-to-mut, r=flip1995
...
cast_ref_to_mut lint
I see this pattern way too often, and it's completely wrong. In fact, due to how common this incorrect pattern is, [the Rustonomicon specifically points this out](https://doc.rust-lang.org/nomicon/transmutes.html ).
> - Transmuting an & to &mut is UB
> - Transmuting an & to &mut is always UB
> - No you can't do it
> - No you're not special
This is my first lint.
2019-01-07 18:30:53 +00:00
Konrad Borowski
27ea638a15
Move cast_ref_to_mut list to correctness group
2019-01-07 14:39:56 +01:00
Konrad Borowski
21d30450b5
Don't import ty::Ref in cast_ref_to_mut lint
2019-01-07 14:37:28 +01:00
Konrad Borowski
6faf1330aa
Move a hint to an error message in cast_ref_to_mut lint
...
This matches mem::transmute::<&T, &mut T> lint in rustc.
2019-01-07 14:37:28 +01:00
Konrad Borowski
1cab4d15a2
Add a note to cast_ref_to_mut lint
2019-01-07 14:37:28 +01:00
Konrad Borowski
fd57874106
Use ty::Ref instead of ty::TyKind::Ref
2019-01-07 14:37:28 +01:00
Konrad Borowski
34daf09aa4
cast_ref_to_mut lint
2019-01-07 14:37:28 +01:00
Marcel Hellwig
a3931229c4
Add missing ` in default lint
2019-01-07 14:32:32 +01:00
Wilco Kusee
351688db78
Improve tests and exclude nested impls
2019-01-07 14:11:53 +01:00
A.A.Abroskin
96058616e2
run ./util/dev update_lints
2019-01-07 13:33:06 +03:00
A.A.Abroskin
3d9535a106
Add unreachable!() as option
2019-01-07 13:30:17 +03:00
A.A.Abroskin
98c5f37ad2
Add assert(true) and assert(false) lints
2019-01-07 13:30:17 +03:00
Michael Wright
d2ea6355a8
Update unwrap_get
code review suggestions
2019-01-07 06:22:39 +02:00
Wilco Kusee
7230768998
Update known problems
2019-01-06 15:41:02 +01:00
Wilco Kusee
ff191a808e
Restrict use_self on nested items
2019-01-06 15:34:36 +01:00
Michael Wright
4add1e23f9
Improve get_unwrap
suggestion
...
Handle case where a reference is immediately dereferenced.
Fixes 3625
2019-01-06 11:46:03 +02:00
Matthias Krüger
3389a68834
Revert "Auto merge of #3603 - xfix:random-state-lint, r=phansch"
...
This reverts commit 0a6593cd1b
, reversing
changes made to 5277a1fb6c
.
This hopefully fixes #3628
2019-01-05 10:19:04 +01:00
bors
d264e406be
Auto merge of #3627 - detrumi:use_self_local_macro, r=phansch
...
Trigger `use_self` lint in local macros
Closes #2098
The test currently only covers local macros. #2098 suggested this:
> You could add the macro in question into the `mini_macro` subcrate
But that doesn't work for a `macro_rules`:
```
error: cannot export macro_rules! macros from a `proc-macro` crate type currently
```
So I suggest leaving out the test for external macros, as using `in_external_macro` seems straigtforward enough. Alternatives would be to use to add an additional crate (overkill if you ask me), or test with a `proc-macro`.
2019-01-05 08:51:13 +00:00
Matthias Krüger
a4b99c6d68
rustup https://github.com/rust-lang/rust/pull/56837
2019-01-05 08:21:56 +01:00
Matthias Krüger
33ec4e5220
rustup (don't know the exact PR unfortunately)
2019-01-05 01:12:33 +01:00
bors
194a91c45d
Auto merge of #3601 - xfix:move-constant-write-lint, r=flip1995
...
Move constant write checks to temporary_assignment lint
They make more sense here
cc #3595
2019-01-04 14:59:11 +00:00
Wilco Kusee
407ff74dcc
Trigger use_self
lint in local macros
2019-01-04 13:01:31 +01:00
bors
756b32e1e2
Auto merge of #3623 - phansch:rustup, r=flip1995
...
rustup: https://github.com/rust-lang/rust/pull/55517
None
2019-01-03 22:29:09 +00:00
Philipp Hansch
d1fffe07c5
rustup: https://github.com/rust-lang/rust/pull/55517
2019-01-03 21:54:57 +01:00
bors
c7c75db827
Auto merge of #3621 - Zoxc:parallel, r=phansch
...
Make clippy work with parallel rustc
2019-01-03 19:27:32 +00:00
John Kåre Alsaker
3af68f831a
Make clippy work with parallel rustc
2019-01-03 19:18:06 +01:00
bors
5b8b01e8dc
Auto merge of #3519 - phansch:brave_newer_ui_tests, r=flip1995
...
Integrate rustfix into Clippy test suite
Once the [PR to compiletest-rs](https://github.com/laumann/compiletest-rs/pull/151 ) is reviewed and merged this fixes #2376 .
I will create a separate tracking issue for adding `run-rustfix` to all tests.
2019-01-03 15:08:47 +00:00
bors
0a6593cd1b
Auto merge of #3603 - xfix:random-state-lint, r=phansch
...
random_state lint
2019-01-03 02:00:46 +00:00
bors
84aa027888
Auto merge of #3607 - detrumi:limit_infinite_iter_to_known_types, r=phansch
...
Only trigger `infinite_iter` lint for infinitely allocating `collect()` calls
Fixes #3538
~Oh, I guess this should actually check other methods like `count` as well, not only `collect()`.~
Never mind, `collect` is the only of these functions that allocates a data structure.
2019-01-03 00:12:02 +00:00
Wilco Kusee
f38fb56baf
Limit infinite_iter collect() check to known types
2018-12-31 13:38:31 +01:00
bors
85ba5f0f17
Auto merge of #3608 - phansch:improve_util_docs, r=oli-obk
...
Some improvements to util documentation
None
2018-12-31 12:03:28 +00:00
Philipp Hansch
cc76384807
Some improvements to util documentation
2018-12-31 12:12:50 +01:00
bors
f2fd8e71e9
Auto merge of #3606 - detrumi:blacklisted_name_hashset, r=phansch
...
Use hashset in `blacklisted_name` lint
2018-12-31 10:22:06 +00:00
Wilco Kusee
d1dfd3e96f
Use hashset for name blacklist
2018-12-31 10:44:27 +01:00
bors
6f3912850a
Auto merge of #3590 - jorpic:i3559-if_same_then_else, r=phansch
...
Fix if_same_then_else false positive
This fixes false positive in #3559 .
The problem was that `SpanlessEq` does not check patterns in declarations. So this two blocks considered equal.
```rust
if true {
let (x, y) = foo();
} else {
let (y, x) = foo();
}
```
Not sure if the proposed change is safe as `SpanlessEq` is used extensively in other lints, but I tried hard to come up with counterexample and failed.
2018-12-31 09:25:18 +00:00
bors
529f698c23
Auto merge of #3599 - xfix:use-hash-set-for-valid-idents, r=oli-obk
...
Use an FxHashSet for valid idents in documentation lint
2018-12-30 17:46:01 +00:00
Konrad Borowski
978e3ac2cf
Use node_id_to_type_opt instead of node_it_to_type in random_state
2018-12-30 13:40:27 +01:00
bors
735607c1f9
Auto merge of #3588 - detrumi:tuple_struct_use_self, r=phansch
...
`use_self` for tuple structs
Fixes #3498
2018-12-30 11:12:55 +00:00
Max Taldykin
911a752561
Check pattern equality while checking declaration equality
2018-12-30 14:01:56 +03:00
Konrad Borowski
1130bbc26f
Merge branch 'master' of https://github.com/rust-lang/rust-clippy into random-state-lint
2018-12-30 11:43:20 +01:00
bors
aee138a7cf
Auto merge of #3597 - xfix:match-ergonomics, r=phansch
...
Match ergonomics (lints from A to B)
2018-12-30 10:40:36 +00:00
Wilco Kusee
1d10de66de
Remove false negatives from known problems
2018-12-30 08:23:39 +01:00
Wilco Kusee
ab42ba4f54
Implement use_self for tuple structs
2018-12-30 08:23:38 +01:00
Wilco Kusee
0f3dcdc3aa
Document known problems
2018-12-30 08:20:49 +01:00
Konrad Borowski
a6c4eaa93c
random_state lint
2018-12-30 02:45:34 +01:00
Matthias Krüger
e590025f61
rustup https://github.com/rust-lang/rust/pull/56225/
...
item.name -> item.ident.name
2018-12-30 01:09:24 +01:00
Konrad Borowski
815e434a1f
Move constant write checks to temporary_assignment lint
...
They make more sense here
2018-12-30 00:25:09 +01:00
bors
6cba3da727
Auto merge of #3558 - russelltg:new_without_default_merge, r=flip1995
...
Merge new_without_default_derive into new_without_default
Closes #3525 , deprecating new_without_default_derive and moving both lints into new_without_default.
2018-12-29 17:31:35 +00:00
Konrad Borowski
ab70e0e742
Use an FxHashSet for valid idents in documentation lint
2018-12-29 18:08:53 +01:00
Konrad Borowski
aeabb890d6
Use match ergonomics for booleans lint
2018-12-29 17:38:15 +01:00
Konrad Borowski
13c857b745
Use match ergonomics for block_in_if_condition lint
2018-12-29 17:32:09 +01:00
Konrad Borowski
fe151ebb9c
Use match ergonomics for bit_mask lint
2018-12-29 17:31:32 +01:00
Konrad Borowski
931e2b0026
Use match ergonomics for attrs lint
2018-12-29 17:29:50 +01:00
Konrad Borowski
3bf71a8e62
Use match ergonomics for assign_ops lint
2018-12-29 17:27:26 +01:00
Konrad Borowski
79cd95cf35
Use match ergonomics for artithmetic lint
2018-12-29 17:25:45 +01:00
Konrad Borowski
0ddb628488
Use match ergonomics for approx_const lint
2018-12-29 17:25:07 +01:00
bors
4d60841205
Auto merge of #3596 - xfix:remove-crate-from-paths, r=flip1995
...
Remove crate:: prefixes from crate paths
This is somewhat misleading, as those are actually external crates,
and don't need a crate:: prefix.
2018-12-29 16:15:57 +00:00
Konrad Borowski
3f62fc3a7e
Remove crate:: prefixes from crate paths
...
This is somewhat misleading, as those are actually external crates,
and don't need a crate:: prefix.
2018-12-29 16:05:49 +01:00
Konrad Borowski
9fe8a3e52e
Support array indexing expressions in unused write to a constant
2018-12-29 15:34:15 +01:00
Konrad Borowski
847898f18f
Mark writes to constants as side-effect-less
2018-12-29 15:18:51 +01:00
Konrad Borowski
44bf8e0c3d
Remove unsafe from consts clippy lints
2018-12-29 00:50:03 +01:00
Philipp Hansch
298aedf2f8
Fix suggestion for unnecessary_ref lint
2018-12-28 20:54:29 +01:00
Peter Fürstenau
6ee0e22204
Merge remote-tracking branch 'upstream/master'
2018-12-28 20:19:51 +01:00
Russell Greene
d127aed737
Merge new_without_default_derive into new_without_default
2018-12-28 10:57:58 -07:00
flip1995
909bfd3cd8
Match on ast/hir::ExprKind::Err
2018-12-28 13:31:19 +01:00
bors
721f688eff
Auto merge of #3577 - daxpedda:master, r=flip1995
...
Fix false positives for `implicit_return` and `empty_loop` on macro expansion.
This PR only fixes `implicit_return` and `empty_loop`.
But I suspect this bug may affect a lot of other lints.
2018-12-27 15:21:22 +00:00
Matthias Krüger
99454bc9a1
rustup https://github.com/rust-lang/rust/pull/57069
2018-12-27 11:19:20 +01:00
daxpedda
2d96ef1315
Rustfmt.
2018-12-26 18:13:33 +01:00
Matthias Krüger
7f5e17f3f1
fix a couple of ftrivial typos (NFC).
2018-12-25 18:22:34 +01:00
Philipp Krones
197914439a
Fix macro detection in empty_loop
.
...
Co-Authored-By: daxpedda <1645124+daxpedda@users.noreply.github.com>
2018-12-25 12:57:16 +01:00
daxpedda
a77bcadaa5
Changed macro_backtrace()
to in_macro()
.
2018-12-25 12:48:54 +01:00
daxpedda
b5587a894f
Fix lint detection on macro expansion.
2018-12-24 22:06:08 +01:00
Oliver Scherer
6db409fc0c
FIXME > TODO
2018-12-23 13:29:37 +01:00
Matthias Krüger
ce3e69da1c
rustup https://github.com/rust-lang/rust/pull/56992
2018-12-23 10:42:06 +01:00
bors
52820e588f
Auto merge of #3573 - Vlad-Shcherbina:map_clone_caveat, r=flip1995
...
Document map_clone known problems #498
(cherry picked from commit ada0d2c548
)
This was lost in relicensing (057243f16b
).
However, I [acknowledged](https://github.com/rust-lang/rust-clippy/issues/3099#issuecomment-416482309 ) relicensing so this cherry pick should be fine I guess.
2018-12-22 15:02:50 +00:00
bors
d9cc71fc42
Auto merge of #3341 - HMPerson1:possibly_missing_else, r=phansch
...
Teach `suspicious_else_formatting` about `if .. {..} {..}`
We essentially treat bare blocks `{..}` identically to `if .. {..}`, except for different lint messages.
Fixes #3044
2018-12-22 13:26:22 +00:00
Vlad-Shcherbina
d2c069de1e
Document map_clone known problems #498
...
(cherry picked from commit ada0d2c548
)
2018-12-22 13:44:35 +03:00
Mark Nieweglowski
c6031221e0
panic at map_unit_fn.rs:202 for map() without args
2018-12-22 00:58:07 -05:00
HMPerson1
05ae391e2c
Workaround rust-lang/rust#43081
2018-12-20 22:45:44 -05:00
HMPerson1
88564b743e
Teach suspicious_else_formatting
about if .. {..} {..}
2018-12-20 22:45:37 -05:00
Daniel Silverstone
5875ba3364
mutex_atomic: Correct location of AtomicBool and friends
...
The AtomicBool, AtomicUsize, and friends, types live in the
`std::sync::atomic` module, rather than `std::atomic` as the lint
help text used to say.
2018-12-19 20:47:50 +00:00
Peter Fürstenau
65c35333a4
Only print out question_mark lint when it actually triggered
2018-12-19 20:55:01 +01:00
Peter Fürstenau
e722b1338e
Reinserted commata
2018-12-19 20:31:08 +01:00
bors
61de562454
Auto merge of #3554 - klausi:module_name_repeat, r=oli-obk
...
chore(module_name_repeat): Rename stutter lint to module_name_repeat to avoid ableist language
See #3521
2018-12-18 13:28:12 +00:00
Peter Fürstenau
ee0856cbeb
Recomend .as_ref()?
in certain situations
2018-12-18 13:57:38 +01:00
Peter Fürstenau
8b0ea22885
Deduplicate some code?
2018-12-18 13:57:38 +01:00
bors
176778fe92
Auto merge of #3556 - lucasloisp:bool-ord-comparison, r=oli-obk
...
Implements lint for order comparisons against bool (#3438 )
As described on issue #3438 , this change implements linting for `>` and `<` comparisons against both `boolean` literals and between expressions.
2018-12-18 10:11:08 +00:00
Wilco Kusee
24ef8db402
Do not mark as_ref as useless if it's followed by a method call
2018-12-17 21:33:50 +01:00
Lucas Lois
de42dfbab7
Changes lint sugg to bitwise and operator &
2018-12-17 15:32:24 -03:00
flip1995
a44adaa5ed
Rename lint to MODULE_NAME_REPETITIONS
2018-12-17 14:29:19 +01:00
flip1995
0516c2e04a
Move renaming to the right place
2018-12-17 13:58:41 +01:00
Lucas Lois
bc48890b47
Implements lint for order comparisons against bool
2018-12-16 21:43:32 -03:00
Klaus Purer
355018d086
fix(module_name_repeat): Try to register renamed lint, not valid yet
2018-12-16 22:49:46 +01:00
daxpedda
35058287ce
Fix implicit_return
false positives.
2018-12-16 15:42:02 +01:00
Klaus Purer
15b9e9f23a
chore(moduel_name_repeat): Rename stutter lint to module_name_repeat to avoid ableist language
2018-12-16 14:10:53 +01:00
bors
a416c5e0f7
Auto merge of #3545 - Kampfkarren:vec_boxed_sized, r=flip1995
...
Adds lint for Vec<Box<T: Sized>>
This adds, and subsequently closes #3530 . This is the first time I've ever worked with anything remotely close to internal Rust code, so I'm very much unsure about the if_chain! to figure this out!
I can't get rustfmt working on WSL with nightly 2018-12-07:
`error: component 'rustfmt' for target 'x86_64-unknown-linux-gnu' is unavailable for download`
2018-12-14 12:10:48 +00:00
flip1995
d866f31678
rustup rust-lang/rust#52994
...
s/trim_left/trim_start/
s/trim_right/trim_end/
2018-12-14 12:35:44 +01:00
Michael Wright
df73348354
Merge branch 'master' into fix-3514
2018-12-14 07:16:26 +02:00
Kampfkarren
985eba08a5
Line length fix
2018-12-13 10:46:21 -08:00
Kampfkarren
db00c3320f
Remove references to sized for end users
2018-12-13 10:18:17 -08:00
Kampfkarren
9fc914cf4d
Remove DUMMY_SP
2018-12-13 09:37:00 -08:00
Kampfkarren
616395f40b
Add suggestion for replacement
2018-12-13 09:34:16 -08:00
Kampfkarren
ab070508be
Lint for Vec<Box<T: Sized>> - Closes #3530
2018-12-13 07:43:13 -08:00
bors
379c934f3f
Auto merge of #3535 - sinkuu:fixes, r=phansch
...
Fix some problems
Fixes #2892 , #3199 , #2841 , #3476
2018-12-12 19:17:09 +00:00
bors
777c9099e7
Auto merge of #3510 - phansch:fix_doc_markdown_mixed_case, r=flip1995
...
Fix doc_markdown mixed case false positive
Fixes #2343
2018-12-12 18:36:38 +00:00
Philipp Hansch
778723630c
Fix doc_markdown mixed case false positive
2018-12-12 19:25:27 +01:00
bors
7c823cabab
Auto merge of #3450 - phansch:structured_sugg_for_explicit_write, r=flip1995
...
Add suggestion for explicit_write lint
Closes #2083
2018-12-12 18:11:13 +00:00
Shotaro Yamada
eba44e1c67
question_mark: Suggest Some(opt?) for if-else
2018-12-12 18:13:21 +09:00
Shotaro Yamada
eb54c1a9a0
redundant_field_names: Do not trigger on path with type params
...
Fixes #3476
2018-12-12 17:41:52 +09:00
Shotaro Yamada
28635ff04b
question_mark: Lint only early returns
2018-12-12 17:41:51 +09:00
Shotaro Yamada
05d07155b7
question_mark: Fix applicability
2018-12-12 17:40:25 +09:00
Philipp Hansch
1cfbadb029
Fix doc_markdown off by one issue
2018-12-12 08:21:13 +01:00
Shotaro Yamada
bcbbb4d09b
new_without_default, partialeq_ne_impl: Use span_lint_node
...
Fixes #2892 , fixes #3199
2018-12-12 16:08:05 +09:00
Philipp Hansch
499aad1e04
cargo fmt and remove stabilized feature
2018-12-12 07:31:04 +01:00
Philipp Hansch
752724546a
Make suggestion Applicability::MachineApplicable
2018-12-12 07:31:04 +01:00
Philipp Hansch
9a6216ed05
Address review feedback
...
* Fix typo
* Handle None value instead of using `unwrap()`
* `pop()` instead of `x.truncate(x.len() - 1)`
2018-12-12 07:31:04 +01:00
Philipp Hansch
5f007a88b4
Extract method
2018-12-12 07:31:04 +01:00
Philipp Hansch
7e7a33c726
Check array lengths to prevent OOB access
2018-12-12 07:31:04 +01:00
Philipp Hansch
c4c9d9fc62
Add suggestion for explicit_write lint
2018-12-12 07:31:01 +01:00
Philipp Hansch
ee2abc36a3
Add 'CamelCase' to doc_valid_idents
2018-12-11 19:37:43 +01:00
Michael Wright
c6505aa160
Fix write_with_newline escaping false positive
...
Fixes #3514
2018-12-11 08:44:49 +02:00
bors
0fd7fe9a77
Auto merge of #3511 - phansch:remove_allow_doc_markdown, r=phansch
...
Remove allow(doc_markdown) in excessive_precision.rs
Closes #3299
2018-12-10 19:21:25 +00:00
bors
ada0b2b095
Auto merge of #3518 - sinkuu:redundant_clone_tw, r=phansch
...
Lint redundant clone of fields
Makes `redundant_clone` warn on unnecessary `foo.field.clone()` sometimes (it can detect an unnecessary clone only if the base of projection, `foo` in this case, is not used at all after that). This is enough for cases like `returns_tuple().0.clone()`.
2018-12-10 18:55:49 +00:00
Shotaro Yamada
e7d18084fb
Only check the assignment found at last
...
If there are more than one such assignment, the last one may be
the one supplied to `clone` method.
Makes `find_stmt_assigns_to` internally reverses the iterator to make
the intent to "iterate statements backward" clear.
2018-12-10 15:59:21 +09:00
Shotaro Yamada
fd9f5df36c
Add comment and rename
2018-12-10 15:48:34 +09:00
Shotaro Yamada
22f396a1c1
Apply redundant_clone on clippy
2018-12-10 08:48:14 +09:00
Shotaro Yamada
109d4b1ab3
Lint redundant clone of projection
2018-12-10 08:48:14 +09:00
Matthias Krüger
273dc82872
run rustfmt
2018-12-09 12:03:10 +01:00
Shotaro Yamada
790e611c9c
Cleanup
2018-12-09 19:18:35 +09:00
Philipp Hansch
fe3519e0dd
Swap if branches
2018-12-08 12:09:32 +01:00
Philipp Hansch
d90cad24a1
Fix c_void false positive caused by libc refactoring
...
The path of `libc::c_void` has changes in 5c1a6b8a6d
The DefId path is now always platform specific like
`libc::windows::c_void`. This fixes our c_void detection to only check
the first and last elements.
2018-12-08 12:05:11 +01:00
Matthias Krüger
f13d23de41
rustup https://github.com/rust-lang/rust/pull/56502 ( .hir -> .hir() )
2018-12-08 12:05:09 +01:00
Philipp Hansch
26602ddff4
Merge pull request #3336 from HMPerson1/clone_on_copy_deref
...
Fix `clone_on_copy` not detecting derefs sometimes
2018-12-08 09:59:02 +01:00
Philipp Hansch
a73d051227
Remove allow(doc_markdown) in excessive_precision.rs
2018-12-07 22:47:12 +01:00
Philipp A
2fed8d9f1d
typo: emum → enum
2018-12-07 12:24:59 +01:00
Matthias Krüger
45cbdf471d
rustup clippy build with latest rustc
...
(breakage due to 08f8faedd0
)
Fixes #3500
2018-12-06 16:44:22 +01:00
Philipp Hansch
c4ef06a9b6
Merge pull request #3497 from daxpedda/master
...
Fix bug in `implicit_return`.
2018-12-06 14:13:20 +01:00
daxpedda
a4ec7be06f
Forgot to remove some debugging code ...
2018-12-06 13:23:42 +01:00
daxpedda
d048e15835
Improved code noted by clippy.
2018-12-06 13:21:04 +01:00
daxpedda
973d676cd1
Fix bug in implicit_return
.
...
Bug was already covered by test, but test was not checked for.
2018-12-06 12:22:54 +01:00
Felix Kohlgrüber
a8a0b236b5
fix #3482 and add ui test for it
2018-12-06 11:07:10 +01:00
Philipp Hansch
f93591294d
Merge pull request #3494 from daxpedda/master
...
Added `IMPLICIT_RETURN` lint.
2018-12-06 07:12:01 +01:00
daxpedda
b0f3ed2b80
Added additional reasoning to Why is this bad?
.
...
Added comment to explain usage of MIR.
2018-12-05 15:01:19 +01:00
daxpedda
aed2b986e6
Renamed to implicit_return
.
...
Covered all other kinds besides `ExprKind::Lit`.
Added check for replacing `break` with `return`.
2018-12-05 14:39:09 +01:00
flip1995
36ee92780d
Fix ty::TyKind usage
2018-12-05 12:47:19 +01:00
flip1995
20a07f6d80
Fix TyKind::<kind> usage in codebase
2018-12-05 12:47:10 +01:00
daxpedda
19db2f1a32
Appeasing the Test Gods.
...
Seems I'm not smart enough to run the tests locally before committing.
2018-12-05 11:26:40 +01:00
daxpedda
978f8c65ee
Renamed forced_return
to missing_returns
.
...
Better clarification in the docs.
Ran `update_lints`.
2018-12-05 10:54:21 +01:00
daxpedda
d5d6692288
Added FORCED_RETURN
lint.
2018-12-05 01:59:09 +01:00
Philipp Krones
3f24cdf10f
Merge pull request #3490 from phansch/extract_single_match_else_ui_test
...
Extract single_match_else UI test
2018-12-04 14:57:19 +01:00
Philipp Hansch
68bb900eba
Merge pull request #3473 from lucasloisp/additional-bool-comparisons
...
Adds inequality cases to bool comparison (#3438 )
2018-12-04 07:26:29 +01:00
Philipp Hansch
8b2eb06df3
Merge pull request #3488 from phansch/fix_cargo_lint_bug
...
Fix wildcard_dependencies false positive
2018-12-04 07:24:11 +01:00
Philipp Hansch
3f72d4d630
Extract single_match_else UI test
...
There's only one test currently.
I also updated the lint doc with a 'good' example and changed the lint
help text a bit.
cc #2038
2018-12-04 07:20:13 +01:00
Philipp Hansch
46ee676139
cargo fmt
2018-12-04 06:47:41 +01:00
Lucas Lois
3930148059
Adds inequality cases to bool comparison lint
...
The lint now checks cases like `y != true`
2018-12-03 16:32:11 -03:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
c00210d7ba
Merge pull request #3478 from dtolnay/setlen
...
Remove unsafe_vector_initialization lint
2018-12-03 12:42:31 +01:00
David Tolnay
e632a1946e
Remove unsafe_vector_initialization lint
2018-12-03 02:48:37 -08:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
13438b6866
Merge pull request #3479 from dtolnay/literal
...
Downgrade large_digit_groups to pedantic
2018-12-03 11:06:56 +01:00
Philipp Hansch
ef64c762d2
Fix wildcard_dependencies false positive
...
This now only checks for wildcard_dependencies if the source is a
non-git source.
I tried adding a compiletest suite for the cargo lints, but I was unable
to override the `Cargo.toml` of the original executable.
I tested this manually by modifying the main `Cargo.toml`.
Fixes #3458
2018-12-03 08:12:35 +01:00
Philipp Hansch
ebd508e0ac
Fix rustfmt format
2018-12-03 07:13:00 +01:00
David Tolnay
c00dcd03d7
Downgrade large_digit_groups to pedantic
...
I believe if the user already decided to put underscores in their
literal, Clippy should be willing to believe that they put a number of
underscores that they felt was readable.
2018-12-01 17:08:42 -08:00
David Tolnay
8b1f69a485
Downgrade unsafe_vector_initialization to restriction
...
This lint looks for:
let mut vec = Vec::with_capacity(len);
vec.set_len(len);
The suggested replacement is `vec![0; len]`.
This is far too opinionated to be a deny-by-default lint because the performance
characteristics of the suggested replacement are totally different.
I am not convinced that this lint has value beyond what deny(unsafe_code) gives
you. Unsafe code is unsafe but please don't deny-by-default lint it if that's
the only reason.
2018-12-01 16:21:02 -08:00
Matthias Krüger
c38bac89e9
remove macro_at_most_once_rep feature attribute since it's stable
...
Warning was:
warning: the feature `macro_at_most_once_rep` has been stable since 1.32.0 and no longer requires an attribute to enable
--> clippy_lints/src/lib.rs:19:12
|
19 | #![feature(macro_at_most_once_rep)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(stable_features)] on by default
2018-11-30 09:14:18 +01:00
flip1995
63fa5d24e1
Fix some formatting issues
2018-11-27 21:49:09 +01:00
flip1995
1751d2496d
Run rustfmt on clippy_lints
2018-11-27 21:14:15 +01:00
flip1995
87e72a5861
Fix NAIVE_BYTECOUNT applicability
2018-11-27 17:31:17 +01:00
flip1995
6eb8e6d7c5
Fix dogfood error
2018-11-27 16:59:52 +01:00
flip1995
adc638ef33
Change Applicability of MISTYPED_LITERAL_SUFFIX
2018-11-27 16:59:39 +01:00
flip1995
4e74eef6e9
Add applicability level to (nearly) every span_lint_and_sugg function
2018-11-27 15:29:23 +01:00
flip1995
3740da203b
Fix bugs and improve documentation
...
Some bugs and some documentation is unrelated to the Applicability change, but
these bugs were serious and the documentation was kind of required to
understand what's going on.
2018-11-27 15:29:23 +01:00
flip1995
9096269610
Add Applicability::Unspecified to span_lint_and_sugg functions
2018-11-27 15:29:23 +01:00
flip1995
fad267c3b3
Introduce snippet_with_applicability and hir_with_applicability functions
2018-11-27 15:29:14 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
1e2291c90c
Merge pull request #3365 from gnieto/lint/slow-initialization
...
Add slow vector initializations lint
2018-11-26 13:37:46 +01:00
Matthias Krüger
ae32c877a5
constants: add u128 i128 builtin types and fix outdated url
2018-11-26 01:12:12 +01:00
Guillem Nieto
dc35841be4
Update lints
2018-11-25 14:36:04 -08:00
Guillem Nieto
5fa04bc3cd
Lint only the first statment/expression after alloc
...
Instead of searching for all the successive expressions after a vector
allocation, check only the first expression.
This is done to minimize the amount of false positives of the lint.
2018-11-25 14:34:23 -08:00
Guillem Nieto
39b02fdcd2
Fix some warnings related to Self
2018-11-25 14:34:23 -08:00
Guillem Nieto
5b77ee95dc
Rename some symbols
...
Renamed some symbols in order to make them a little bit more accurate.
2018-11-25 14:34:23 -08:00
Guillem Nieto
2753f1cbd4
Split lint into slow and unsafe vector initalization
2018-11-25 14:34:23 -08:00
Guillem Nieto
9b4bc3b6ef
Add unsafe set_len initialization
2018-11-25 14:34:23 -08:00
Guillem Nieto
e0ccc9d9af
Add slow zero-filled vector initialization lint
...
Add lint to detect slow zero-filled vector initialization. It detects
when a vector is zero-filled with extended with `repeat(0).take(len)`
or `resize(len, 0)`.
This zero-fillings are usually slower than simply using `vec![0; len]`.
2018-11-25 14:34:23 -08:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
69d09fbfc6
Merge pull request #3439 from dtolnay/npbv
...
Downgrade needless_pass_by_value to allow by default
2018-11-24 10:16:38 +01:00
Matthias Krüger
311c8e29b1
rustup https://github.com/rust-lang/rust/pull/54071/
2018-11-23 10:05:51 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
ff7da3264e
Merge pull request #3447 from phansch/small_rename
...
s/file_map/source_map
2018-11-22 15:08:13 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
87ec0580f9
Merge branch 'master' into version_ids
2018-11-22 10:22:25 +01:00
Philipp Hansch
c4b08a5b0c
s/file_map/source_map
2018-11-22 07:53:59 +01:00
Matthias Krüger
f5929e0797
rust-lang-nursery/rust-clippy => rust-lang/rust-clippy
2018-11-22 04:40:09 +01:00
Wayne Warren
1fed72bad4
Address 'clippy::single-match' dogfood lint
2018-11-21 07:52:02 -06:00
Philipp Krones
d4a6ee4a0c
Fix nit
...
Co-Authored-By: waynr <wayne.warren.s@gmail.com>
2018-11-21 07:52:02 -06:00
Wayne Warren
cb5e327c58
Address travis CI lint failure
2018-11-21 07:52:02 -06:00
Wayne Warren
92f7f9061c
issue#3318 run trivially_copy_pass_by_ref for traits
2018-11-21 07:52:02 -06:00
Oliver Scherer
617d861041
Enable rustup clippy to refer to the correct documentation
2018-11-21 13:33:42 +01:00
Matthias Krüger
4aae76464c
rustup https://github.com/rust-lang/rust/pull/52591
2018-11-21 13:29:23 +01:00
David Tolnay
e4be2b4e64
Downgrade needless_pass_by_value to allow by default
...
I noticed that I suppress this lint in many of my projects.
https://github.com/search?q=needless_pass_by_value+user%3Adtolnay&type=Code
https://github.com/search?q=needless_pass_by_value+user%3Aserde-rs&type=Code
Upon further inspection, this lint has a *long* history of false
positives (and several remaining).
Generally I feel that this lint is the definition of pedantic and should
not be linted by default.
#[derive(Debug)]
enum How {
ThisWay,
ThatWay,
}
// Are we really better off forcing the call sites to write f(&_)...?
fn f(how: How) {
println!("You want to do it {:?}", how);
}
fn main() {
f(How::ThatWay);
}
2018-11-21 03:11:22 -08:00
bors[bot]
64ff255ac6
Merge #3432
...
3432: match_ref_pats: don't emit suggestions inside of a macro r=Manishearth a=flip1995
Fixes #2636
Co-authored-by: flip1995 <hello@philkrones.com>
2018-11-19 21:07:49 +00:00
Matthias Krüger
3a11cd4289
remove unused allow() attributes, NFC
2018-11-17 13:47:46 +01:00
flip1995
1000fc5120
Don't emit suggestion when inside of a macro
2018-11-15 17:03:17 +01:00
Matthias Krüger
2d0d41ff29
rustup https://github.com/rust-lang/rust/pull/55852/
2018-11-15 16:50:28 +01:00
bors[bot]
a2c9d10da5
Merge #3419
...
3419: Linter to check that all common metadata is included r=flip1995 a=ysimonson
Addresses https://github.com/rust-lang-nursery/rust-clippy/issues/1793
This is not ready to be merged yet. First the associated changes to `cargo_metadata` need to be merged: https://github.com/oli-obk/cargo_metadata/pull/55
Co-authored-by: Yusuf Simonson <simonson@gmail.com>
2018-11-15 14:18:12 +00:00
Anton
93324f1acf
Fix "too" -> "foo" typo in format.rs
2018-11-14 14:08:52 +01:00
Michael Wright
3ba4c3a9b1
Fix use_self
violation
2018-11-14 08:43:35 +02:00
Michael Wright
e2e892b59b
Fix wrong suggestion for redundant_closure_call
...
Fixes #1684
2018-11-14 08:01:39 +02:00
Yusuf Simonson
866caabb7a
Check for common metadata
2018-11-13 08:43:30 -05:00
Michael Wright
5ade9ff44e
Fix use_self
false positive on use
statements
2018-11-13 06:15:33 +02:00
Michael Wright
460c2b317b
Fix use_self
false positive
...
This fixes the first error reported in issue #3410 .
2018-11-10 10:57:11 +02:00
Michael Wright
c20e17f8ee
Remove +
from has_unary_equivalent
...
Rust doesn't has a unary + operator!
2018-11-06 07:05:13 +02:00
Michael Wright
2353f24095
Merge branch 'master' into fix-missing-comma-fp
2018-11-06 07:00:54 +02:00
Philipp Hansch
90f31e21ab
RIIR update lints: Add check mode (update_lints.py rewrite complete)
...
This finishes up the rewrite of `update_lints.py` in Rust. More
specifically, this
* adds the `--check` flag and handling to clippy_dev
* tracks file changes over the different calls to `replace_region_in_file`
* only writes changes to files if the `--check` flag is *not* used
* runs `./util/dev update_lints --check` on CI instead of the old script
* replaces usage of the `update_lints.py` script with an error
`./util/dev update_lints` behaves 99% the same as the python script.
The only difference that I'm aware of is an ordering change to
`clippy_lints/src/lib.rs` because underscores seem to be sorted
differently in Rust and in Python.
🏁
2018-11-05 07:18:47 +01:00
bors[bot]
7e417d4cbd
Merge #3353
...
3353: float support added for mistyped_literal_suffixes lint r=mikerite a=Maxgy
I implemented the mistyped_literal_suffixes lint for float literals.
```
#![allow(unused_variables)]
fn main() {
let x = 1E2_32;
let x = 75.22_64;
}
```
Given the above, the additional check suggests the variables to be written as `let x = 1E2_f32` and `let x = 75.22_f64`.
Fixes #3167
Co-authored-by: Maxwell Anderson <maxwell.brayden.anderson@gmail.com>
2018-11-05 03:58:15 +00:00
Matthias Krüger
396701613e
rustup https://github.com/rust-lang/rust/pull/55665 (pass contexts by reference)
2018-11-04 22:47:20 +01:00
Maxwell Anderson
3e0de1745d
changed into_iter to iter and fixed a lint check
2018-11-04 10:39:54 -07:00
Michael Wright
a3ab512576
Fix collapsible_if
error
2018-11-04 10:48:24 +02:00
Michael Wright
0c1ffc1d1f
Fix possible_missing_comma
false positives
...
`possible_missing_comma` should only trigger when the binary operator has
unary equivalent. Otherwise, it's not possible to insert a comma without
breaking compilation. The operators identified were `+`, `&`, `*` and `-`.
This fixes the specific examples given in issues #3244 and #3396
but doesn't address the conflict this lint has with the style of starting
a line with a binary operator.
2018-11-04 10:02:49 +02:00
Matthias Krüger
b59b60c8ae
rustup https://github.com/rust-lang/rust/pull/55330/
2018-11-03 18:50:23 +01:00
bors[bot]
486300b89d
Merge #3400
...
3400: Fix a false-positive of needless_borrow r=phansch a=sinkuu
Co-authored-by: Shotaro Yamada <sinkuu@sinkuu.xyz>
2018-11-03 08:34:13 +00:00
flip1995
cadb367a5c
Also lint cfg_attr(.., rustfmt::skip)
2018-11-02 19:50:24 +01:00
flip1995
a770d8edd0
Differ between inner and outer attributes
2018-11-02 19:49:58 +01:00
flip1995
e1cf160e2a
Add cfg_attr(rustfmt) lint
2018-11-02 19:49:57 +01:00
kennytm
5563bd6cc3
Addressed comments.
2018-11-02 22:53:57 +08:00
kennytm
2b2acf1002
Fix dogfood error.
2018-11-02 22:53:57 +08:00
kennytm
2d1c9313b0
Added lints into_iter_on_ref
and into_iter_on_array
. Fix #1565 .
2018-11-02 22:53:56 +08:00
flip1995
32396f6e18
Allow single_match_else
2018-11-02 14:00:46 +01:00
flip1995
014cf3d6e0
Fix typos
2018-11-02 13:49:10 +01:00
flip1995
cf89c40e34
Fix dogfood error
2018-11-02 13:49:10 +01:00
flip1995
ea4a80f215
Fix typo and indentation
2018-11-02 13:49:10 +01:00
flip1995
f6d57862c7
Add new lint: unknwon_clippy_lintsg
2018-11-02 13:49:09 +01:00
Matthias Krüger
df7cff31dc
clippy: fix pedantic warnings and run clippy::pedantic lints on the codebase.
...
Turn on pedantic lints in dogfood and base tests.
needless_bool: fix clippy::items-after-statements
redundant_pattern_matching: fix clippy::similar-names
mods.rs: fix clippy::explicit-iter-loop
returns.rs: allow clippy::cast-possible-wrap
Fixes #3172
2018-11-02 12:16:43 +01:00
bors[bot]
7c86a9c05c
Merge #3387
...
3387: Replace big if/else expression with match r=flip1995 a=mikerite
Co-authored-by: Michael Wright <mikerite@lavabit.com>
2018-11-02 07:58:00 +00:00
Shotaro Yamada
d4370f8b07
Fix a false-positive of needless_borrow
2018-11-02 15:58:54 +09:00
bors[bot]
0ad5b9b9e0
Merge #3388
...
3388: RIIR update lints: Generate deprecated lints r=phansch a=phansch
The update script now also generates the 'register_removed' section in
`clippy_lints/src/lib.rs`.
Also, instead of using `let mut store ...`, I added a new identifier
line so that the replacement will continue to work in case `let mut
store ...` ever changes.
cc #2882
Co-authored-by: Philipp Hansch <dev@phansch.net>
2018-11-02 06:29:40 +00:00
Maxwell Anderson
b6b97e5c1f
format code
2018-11-01 15:43:40 -06:00
Maxwell Anderson
6c1f89e8dc
Merge remote-tracking branch 'upstream/master'
2018-11-01 15:26:38 -06:00
Philipp Hansch
beb44ef6ca
Fix clippy build failure on latest master
2018-11-01 20:35:23 +01:00
Maxwell Anderson
02340cc891
fix comment spacing
2018-11-01 12:35:01 -06:00
Michael Wright
0a41dfd946
Use slice patterns instead of padding
2018-11-01 07:06:47 +02:00
Maxwell Anderson
98ce3348d9
change single char str to char
2018-10-31 18:09:56 -06:00
Maxwell Anderson
3c22b2314c
Merge remote-tracking branch 'upstream/master'
2018-10-31 16:48:47 -06:00
Maxwell Anderson
f4b919cad7
add lint to lintarray macro
2018-10-31 16:48:24 -06:00
Maxwell Anderson
6b895b8267
Revert "small fix"
...
This reverts commit b1abc81a60
.
2018-10-31 16:39:12 -06:00
bors[bot]
73458aebe3
Merge #3368
...
3368: added downsides to "known problems" for get_unwrap lint r=flip1995 a=humean
As a beginner I found this lint to be confusing because I was not sure how the `Option` type disappeared as conceptually I know that my `.get()` and Index could fail. Initially I thought maybe the compiler or clippy was smart enough to understand that it was impossible for my `.get()` to fail in this particular case, but it was explained to me that using the Index syntax is just shorthand for directly unwrapping the value:
https://doc.rust-lang.org/src/std/collections/hash/map.rs.html#1547
For beginners or users trying to iterate quickly it seems common to litter your code with `unwrap` or `except` as placeholders for where some explicit error handling might need to take place. I think it should be warned that using Index is merely more concise, but doesn't at all reduce the risk of panics and might in fact cause you to miss handling them in a future refactor.
Co-authored-by: Michael Rutter <michael.john.rutter@gmail.com>
Co-authored-by: Michael Rutter <humean@users.noreply.github.com>
2018-10-31 10:21:51 +00:00
bors[bot]
c8308c92b6
Merge #3378
...
3378: Fix lint_without_lint_pass r=phansch a=mikerite
Co-authored-by: Michael Wright <mikerite@lavabit.com>
Co-authored-by: flip1995 <hello@philkrones.com>
2018-10-31 07:18:42 +00:00
Philipp Hansch
64bd658516
RIIR update lints: Generate deprecated lints
...
The update script now also generates the 'register_removed' section in
`clippy_lints/src/lib.rs`.
Also, instead of using `let mut store ...`, I added a new identifier
line so that the replacement will continue to work in case `let mut
store ...` ever changes.
2018-10-31 08:03:50 +01:00
bors[bot]
b144c7f35d
Merge #3370
...
3370: bool_comparison triggers 3 times on same code r=phansch a=mrbuzz
Fix #3335
Co-authored-by: Giorgio Gambino <gambnio.giorgio@gmail.com>
2018-10-31 06:48:49 +00:00
Michael Wright
4e054ad320
Replace big if/else expression with match
2018-10-31 06:29:38 +02:00
Matthias Krüger
650eb09981
docs: use_self: hightlight the "should be" code sample as rust code as well.
2018-10-31 01:42:17 +01:00
Manish Goregaokar
a06296f836
Rustup to rustc 1.31.0-nightly (fb2446ad5 2018-10-30)
2018-10-30 04:06:37 +00:00
Giorgio Gambino
c0c1f1f7fa
Fix #3335 rev2: bool_comparison triggers 3 times on same code
2018-10-29 22:23:45 +01:00
flip1995
1e43c3bb9f
Register MISTYPED_LITERAL_SUFFIXES lint
2018-10-29 20:54:21 +01:00
flip1995
a7fc6799df
Rewrite registered lint collection
2018-10-29 20:44:45 +01:00
Michael Wright
267d5d3433
Fix lint_without_lint_pass
2018-10-29 20:28:06 +01:00
bors[bot]
14d2700b6f
Merge #3217 #3366
...
3217: Fix string_lit_as_bytes lint for macros r=phansch a=yaahallo
Prior to this change, string_lit_as_bytes would trigger for constructs
like `include_str!("filename").as_bytes()` and would recommend fixing it
by rewriting as `binclude_str!("filename")`.
This change updates the lint to act as an EarlyLintPass lint. It then
differentiates between string literals and macros that have bytes
yielding alternatives.
Closes #3205
3366: Don't expand macros in some suggestions r=oli-obk a=phansch
Fixes #1148
Fixes #1628
Fixes #2455
Fixes #3023
Fixes #3333
Fixes #3360
Co-authored-by: Jane Lusby <jlusby42@gmail.com>
Co-authored-by: Philipp Hansch <dev@phansch.net>
2018-10-28 17:13:34 +00:00
Giorgio Gambino
7cfde9cfa9
Fix #3335 : bool_comparison triggers 3 times on same code
2018-10-28 15:37:39 +01:00
Matthias Krüger
6eb1f23555
rustup: fix build with rustc 1.31.0-nightly (cae6efc37 2018-10-27)
2018-10-28 13:56:50 +01:00
Michael Rutter
232a483331
more consistent use of terminology; trait > syntax
2018-10-28 12:31:02 +00:00
Michael Rutter
061a48321c
added downsides to "known problems" for get_unwrap lint
2018-10-28 08:12:47 +00:00
Maxwell Anderson
183e19a1c3
Merge remote-tracking branch 'upstream/master'
2018-10-27 12:50:12 -06:00
Philipp Hansch
840e50e97f
Don't expand macro in or_fun_call suggestion
2018-10-27 15:47:56 +02:00
Philipp Hansch
af1548f58f
Don't expand macro in single_match suggestion
2018-10-27 15:47:56 +02:00
Philipp Hansch
aa7bcb9074
Don't expand macro in identity_conversion suggestion
2018-10-27 15:47:56 +02:00
Jane Lusby
19ac2e94c6
fix: correctly reconstruct raw strings
2018-10-26 09:12:01 -07:00
Jane Lusby
f9020bb2dd
fix: extra semicolon, only create callsite once
2018-10-26 09:12:01 -07:00
Jane Lusby
c209fc9349
Fix string_lit_as_bytes lint for macros
...
Prior to this change, string_lit_as_bytes would trigger for constructs
like `include_str!("filename").as_bytes()` and would recommend fixing it
by rewriting as `binclude_str!("filename")`.
This change updates the lint to act as an EarlyLintPass lint. It then
differentiates between string literals and macros that have bytes
yielding alternatives.
Closes #3205
2018-10-26 09:12:01 -07:00
bors[bot]
457e7f12e9
Merge #3355
...
3355: Lint to remove redundant `clone()`s r=oli-obk a=sinkuu
This PR adds lint `redundant_clone`. It suggests to remove redundant `clone()` that clones a owned value that will be dropped without any usage after that.
Real-world example: https://github.com/rust-lang/rust/compare/7b0735a..sinkuu:redundant_clone2
Co-authored-by: Shotaro Yamada <sinkuu@sinkuu.xyz>
2018-10-26 10:36:43 +00:00
bors[bot]
ead29847ff
Merge #3357
...
3357: Check existential types in `use_self` r=oli-obk a=HMPerson1
Fixes #3231
Co-authored-by: HMPerson1 <hmperson1@gmail.com>
2018-10-26 08:48:12 +00:00
Shotaro Yamada
9034b87a53
Move in_macro check
2018-10-26 03:07:29 +09:00
Shotaro Yamada
a828692780
Use BasicBlockData::terminator
2018-10-26 01:27:28 +09:00
Shotaro Yamada
6d6ff88585
Refactor
2018-10-26 01:16:14 +09:00
Shotaro Yamada
9a150b4aa1
Use lint_root
2018-10-26 01:16:14 +09:00
Shotaro Yamada
24d3f5b48f
Implement visit_basic_block_data
2018-10-26 01:16:14 +09:00
Shotaro Yamada
3ca0895920
Add redundant_clone lint
2018-10-26 01:15:55 +09:00
Matthias Krüger
b8a9099011
Revert "new_ret_no_self: add sample from #3313 to Known Problems section."
...
This reverts commit fd2f6dd382
.
Issue #3313 has been fixed.
2018-10-25 13:39:02 +02:00
bors[bot]
a87e1b02ab
Merge #3331
...
3331: Disable arithmetic lints in constant items r=oli-obk a=pengowen123
Currently this will not catch cases in associated constants. I'm not sure whether checking spans is the best way to solve this issue, but I don't think it will cause any problems.
Fixes #1858
Co-authored-by: Owen Sanchez <pengowen816@gmail.com>
2018-10-25 09:38:00 +00:00
Philipp Krones
5dbca1f6b1
Add Applicability
2018-10-24 23:39:54 -04:00
HMPerson1
aabf8083bd
Add lint for calling mem::discriminant
on a non-enum type
2018-10-24 23:39:54 -04:00
HMPerson1
3db14f182c
Check existential types in use_self
2018-10-24 23:32:33 -04:00
Owen Sanchez
0b9e9c9e3d
Disable arithmetic lints in constant items
2018-10-24 20:27:26 -07:00
bors[bot]
4c6201dceb
Merge #3312
...
3312: OUT_OF_BOUNDS_INDEXING false negative r=phansch a=JoshMcguigan
fixes #3102
Co-authored-by: Josh Mcguigan <joshmcg88@gmail.com>
2018-10-24 21:17:43 +00:00
bors[bot]
44fb29a356
Merge #3356
...
3356: Fix warnings introduced by #3349 r=flip1995 a=flip1995
I missed these warnings during review, should have checked the Travis log first.
Co-authored-by: flip1995 <hello@philkrones.com>
2018-10-24 15:25:12 +00:00
bors[bot]
bce190558f
Merge #3338
...
3338: new_ret_no_self false positives r=flip1995 a=JoshMcguigan
~~WORK IN PROGRESS~~
I plan to fix all of the false positives in #3313 in this PR, but I wanted to open it now to start gathering feedback.
In this first commit, I've updated the lint to allow tuple return types as long as `Self` shows up at least once, in any position of the tuple. I believe this is the broadest possible interpretation of what should be allowed for tuple return types, but I would certainly be okay making the lint more strict.
fixes #3313
Co-authored-by: Josh Mcguigan <joshmcg88@gmail.com>
2018-10-24 14:42:40 +00:00
flip1995
57a18b6520
Fix warnings introduced by #3349
2018-10-24 16:18:01 +02:00
bors[bot]
319b75c75b
Merge #3349
...
3349: Fixes #3347 : Lint for wildcard dependencies in Cargo.toml r=ordovicia a=ordovicia
Add a lint for wildcard dependencies in Cargo.toml.
How should I write a test for this lint?
Fixes #3347
Co-authored-by: Hidehito Yabuuchi <hdht.ybuc@gmail.com>
2018-10-24 12:21:19 +00:00
Hidehito Yabuuchi
99b78f0650
Replace remaining krate.span
with DUMMY_SP
2018-10-24 21:15:27 +09:00
Hidehito Yabuuchi
0d577c36a9
Use DUMMY_SP in multiple_crate_versions
2018-10-24 20:22:38 +09:00
Hidehito Yabuuchi
663f2cff7e
Some fixes for wildcard_dependencies
2018-10-24 20:19:13 +09:00
bors[bot]
03f8899fa5
Merge #3350
...
3350: Don't emit `new_without_default_derive` if an impl of Default exists regardless of generics r=oli-obk a=pengowen123
Fixes #2226
Co-authored-by: Owen Sanchez <pengowen816@gmail.com>
2018-10-24 07:59:06 +00:00
Hidehito Yabuuchi
fa6c9f838c
Minor changes on clippy_lints/src/wildcard_dependencies.rs
2018-10-24 15:00:28 +09:00
Hidehito Yabuuchi
0263ddde92
Lint for wildcard dependencies in Cargo.toml
2018-10-24 15:00:28 +09:00
bors[bot]
122da1de3b
Merge #3339
...
3339: Check for known array length in `needless_range_loop` r=phansch a=HMPerson1
In `VarVisitor`, we now keep track of the type of the thing that was directly indexed and, if it's an array, check if the range's end is (or is past) the array's length.
Fixes #3033
Co-authored-by: HMPerson1 <hmperson1@gmail.com>
2018-10-24 05:45:02 +00:00
Owen Sanchez
50b9e7aebc
Don't emit new_without_default_derive
if an impl of Default exists
2018-10-23 20:44:31 -07:00
Maxwell Anderson
b1abc81a60
small fix
2018-10-23 16:35:09 -06:00
Maxwell Anderson
6a695ffb3d
added float support for mistyped literal lints
2018-10-23 15:54:27 -06:00
Maxwell Anderson
83ca8d4984
Merge remote-tracking branch 'upstream/master'
2018-10-23 15:24:05 -06:00
Guillem Nieto
fd3651a551
Fix inspector pass documentation
...
When using `#[clippy_dump]`, the compiler complains about an unknown
attribute. The correct one seems to be `#[clippy::dump]`.
2018-10-23 23:03:23 +02:00
Josh Mcguigan
a624583557
new_ret_no_self added test cases
2018-10-20 06:29:17 -07:00
Josh Mcguigan
079f9f45b5
new_ret_no_self walk return type to check for self
2018-10-19 17:54:25 -07:00
HMPerson1
2e9172aea2
Check for known array length in needless_range_loop
2018-10-19 16:34:16 -04:00
HMPerson1
2a9dec681f
Fix suggestion for multiple derefs
2018-10-19 14:51:25 -04:00
Josh Mcguigan
097df8f223
new_ret_no_self correct false positive on raw pointer return types
2018-10-19 05:20:33 -07:00
Josh Mcguigan
6e75050be0
new_ret_no_self correct linting of tuple return types
2018-10-19 04:55:06 -07:00
HMPerson1
a2be050965
Fix clone_on_copy
not detecting derefs sometimes
2018-10-19 00:03:56 -04:00
Maxwell Anderson
9f637288cf
Merge remote-tracking branch 'upstream/master'
2018-10-18 15:45:05 -06:00
Matthias Krüger
fd2f6dd382
new_ret_no_self: add sample from #3313 to Known Problems section.
...
fix trivial typo on the way
2018-10-18 23:37:43 +02:00
Philipp Hansch
8f5a2484a0
Merge pull request #3303 from shssoichiro/3069-unnecessary-fold-pattern-guard
...
Note known false positives in unnecessary_fold lint
2018-10-18 22:26:33 +02:00
Lukas Stevens
5614dcb4ea
Support multiline comments and hopefully fix panic
2018-10-18 18:57:16 +02:00
Lukas Stevens
8753e568bf
Check for comments in collapsible ifs
2018-10-18 18:00:21 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
1264bb6b7d
Merge pull request #3323 from pengowen123/fix_manual_memcpy
...
Simplify manual_memcpy suggestion in some cases
2018-10-18 09:44:24 +02:00
Philipp Hansch
adbaa85ee9
Merge pull request #3330 from shssoichiro/3309-goblin-ice
...
Resolve ICE in needless range loop lint
2018-10-17 21:01:15 +02:00
Joshua Holmer
4b68c965fe
Resolve ICE in needless range loop lint
...
An ICE would occur if the needless range loop was triggered
within a procedural macro, because Clippy would try to produce
a code suggestion which was invalid, and caused the compiler
to crash.
This commit takes the same approach which Clippy currently takes
to work around this type of crash in the needless pass by value lint,
which is to skip the lint if Clippy is inside of a macro.
2018-10-17 10:43:32 -04:00
Philipp Hansch
284c63e84d
Merge pull request #3281 from CYBAI/redundant-match
...
Add lint for redundant pattern matching for explicit return boolean
2018-10-17 07:31:09 +02:00
CYBAI
66ae3b1249
Rename if_let_redundant_pattern_matching to redundant_pattern_matching
...
Also, making the old one deprecated
2018-10-17 11:20:42 +08:00
CYBAI
3b7c88888b
Add lint for redundant pattern matching for explicit return boolean
2018-10-17 11:14:37 +08:00
Giorgio Gambino
aa88e68902
Fix issue #3322 : reword help message for len_zero
2018-10-16 23:23:31 +02:00
Owen Sanchez
8c902d1cf2
Simplify manual_memcpy suggestion in some cases
2018-10-16 12:38:23 -07:00
Joshua Holmer
33847b579e
Update known problems for unnecessary_fold
2018-10-16 09:04:02 -04:00
Bruno Kirschner
2d8b4f3d5c
Avoid linting boxed_local
on trait implementations.
2018-10-15 20:34:45 +02:00
Josh Mcguigan
66d3672b26
out_of_bounds_indexing improved reporting of out of bounds value
2018-10-15 04:44:39 -07:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
0f4b13bc1b
Merge pull request #3316 from pengowen123/fix_needless_range_loop
...
Swap order of methods in `needless_range_loop` suggestion for efficiency in some cases
2018-10-15 09:33:21 +02:00
Owen Sanchez
456843f1cd
Swap order of methods in needless_range_loop
suggestion in some cases
2018-10-14 20:14:16 -07:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
212a4fe4f4
fix for rustc master
2018-10-14 22:55:26 +02:00
Josh Mcguigan
5c39282826
out_of_bounds_indexing refactoring
2018-10-14 07:49:28 -07:00
Matthias Krüger
c492818110
mem_forget: fix syntax error in code sample
2018-10-14 10:30:04 +02:00
Josh Mcguigan
0f3345e8b2
OUT_OF_BOUNDS_INDEXING fix #3102 false negative
2018-10-13 13:51:53 -07:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
601cc9d2c5
Merge pull request #3310 from JoshMcguigan/explicit_counter_loop-3308
...
explicit_counter_loop fix #3308 false positive
2018-10-13 20:11:50 +02:00
Josh Mcguigan
c6f79c7ba0
explicit_counter_loop fix #3308 false positive
2018-10-13 06:57:52 -07:00
Josh Mcguigan
54506705ce
Added new_ret_no_self exception to clippy to pass dogfood tests
2018-10-13 06:25:10 -07:00
Josh Mcguigan
a5e4805ecf
new_ret_no_self correctly lint impl return
2018-10-13 06:20:39 -07:00
Josh Mcguigan
2ef4af7db2
Removed unused variables
2018-10-13 06:20:39 -07:00
Josh Mcguigan
1c4fa419f3
new_ret_no_self fix false positive for impl trait return with associated type self
2018-10-13 06:20:39 -07:00
Josh Mcguigan
13ce96c4bf
new_ret_no_self corrected panic and added test stderr
2018-10-13 06:20:39 -07:00
Josh Mcguigan
eb854b233c
new_ret_no_self added positive test cases
2018-10-13 06:20:39 -07:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
8b12eee112
Merge pull request #3233 from rust-lang-nursery/unused-unit
...
new lint: unused_unit
2018-10-13 09:30:19 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
78860a71d8
Merge pull request #3298 from devonhollowood/pedantic-dogfood-naming
...
Pedantic dogfood: naming and docs
2018-10-13 09:24:55 +02:00
Devon Hollowood
335bc1e820
Fix some more stutter
warnings
2018-10-12 17:07:48 -07:00
Andre Bogus
e8687a6677
unused unit lint
2018-10-13 00:42:55 +02:00
Joshua Holmer
863c8e26fc
Revert "Exclude pattern guards from unnecessary_fold lint"
...
This reverts commit d3c06f7252
.
2018-10-12 13:15:55 -04:00
Joshua Holmer
d3c06f7252
Exclude pattern guards from unnecessary_fold lint
...
Methods like `Iterator::any` borrow the iterator mutably,
which is not allowed within a pattern guard and will fail to compile.
This commit prevents clippy from suggesting this type of change.
Closes #3069
2018-10-12 12:11:56 -04:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
d445dbfe16
Merge pull request #3291 from JoshMcguigan/cmp_owned-3289
...
cmp_owned wording and false positive
2018-10-12 15:07:12 +02:00
Josh Mcguigan
352863065c
cmp_owned refactor
2018-10-12 04:48:54 -07:00
Josh Mcguigan
c9718fa589
cmp_owned correct error message if rhs is deref
2018-10-12 04:34:41 -07:00
sigustin
4e20625187
Add a comment reminding to update README if the default changes
2018-10-12 12:32:48 +02:00
Maxwell Anderson
63fbeaab68
Merge remote-tracking branch 'upstream/master'
2018-10-11 22:16:05 -06:00
Maxwell Anderson
9fad38dca9
tmp progress
2018-10-11 22:15:01 -06:00
Devon Hollowood
73ba33dd2b
Fix doc_markdown
lints
2018-10-11 15:43:13 -07:00
Devon Hollowood
dcef9d0795
Fix stutter
lints
2018-10-11 15:42:22 -07:00
Devon Hollowood
9afd8abbe3
Fix similar_names
warnings
...
Most of these are just `#![allow]`ed, because they are things like using
l vs r to differentiate left vs right. These would be made less clear by
taking the advice of `similar_names`
2018-10-11 15:18:58 -07:00
Josh Mcguigan
0b65462ca5
cmp_owned current suggestion for multiple deref
2018-10-11 05:03:02 -07:00
Oliver Scherer
9d3373137b
Remove now-useless allow(unknown_lints)
2018-10-11 12:18:27 +02:00
Oliver Scherer
b8654eaa6c
Stabilize tool lints
2018-10-11 12:16:22 +02:00
Philipp Hansch
8b45dd704b
Merge pull request #3294 from mikerite/fix-3276
...
Fix fn_to_numeric_cast_with_truncation suppression
2018-10-11 10:53:05 +02:00
Philipp Hansch
928a6d3dc7
Merge pull request #3288 from devonhollowood/pedantic-dogfood-casts
...
Pedantic dogfood: casts
2018-10-11 08:07:51 +02:00
Michael Wright
80cf0d7f26
Fix fn_to_numeric_cast_with_truncation suppression
...
Fixes #3276
2018-10-11 07:45:26 +02:00
mikerite
31eb3b73d3
Merge pull request #3127 from mikerite/fix-2937
...
Fix 2937
2018-10-11 06:22:02 +02:00
Karim SENHAJI
f9e4f5695d
Limit commutative assign op lint to primitive types
2018-10-10 19:10:44 +02:00
Devon Hollowood
289c642d1a
Clarify code
...
Take advantage of the fact that very large regexes are unlikely
2018-10-09 23:35:10 -07:00
Michael Wright
7499cb543d
Fix #2937
2018-10-10 07:52:58 +02:00
Josh Mcguigan
88ee209a1d
Corrected single-character string constant used as pattern found in dogfood test
2018-10-09 20:01:12 -07:00
Josh Mcguigan
b0d7aea946
Fixes 3289, cmp_owned wording and false positive
2018-10-09 19:25:03 -07:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
f6882ede4d
Merge pull request #3287 from JoshMcguigan/cmp_owned-2925
...
cmp_owned false positive
2018-10-09 10:01:31 +02:00
Devon Hollowood
2b9abc5daa
Fix cast_possible_wrap and cast_sign_loss warnings
2018-10-08 22:34:10 -07:00
Devon Hollowood
eef2e8948b
Fix cast_possible_truncation warnings
2018-10-08 21:40:21 -07:00
Josh Mcguigan
ad5c29a445
Fixes #2925 cmp_owned false positive
2018-10-08 19:04:29 -07:00
Matthias Krüger
a578cb2d62
if_let_redundant_pattern_matching: use Span.to() instead of Span.with_hi() to fix crash.
...
Fixes #3064
2018-10-08 17:34:43 +02:00
Rotem Yaari
1ef32e4096
Improve diagnostics in case of lifetime elision ( closes #3284 )
2018-10-08 13:07:21 +03:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
02705d4cf5
Merge pull request #3282 from JoshMcguigan/excessive_precision-2840
...
Fix excessive_precision false positive
2018-10-08 08:24:13 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
ce2da2c04f
Merge pull request #3283 from etaoins/dont-suggest-cloned-for-map-box-deref
...
Don't suggest cloned() for map Box deref
2018-10-08 08:21:59 +02:00
Philipp Hansch
41e94dd072
Merge pull request #3285 from devonhollowood/pedantic-dogfood-items-after-statements
...
Pedantic dogfood: `items_after_statements`
2018-10-08 06:59:55 +01:00
Devon Hollowood
82638e4dd4
Fix items_after_statements for const
s
2018-10-07 17:09:32 -07:00
Devon Hollowood
be983fbf52
Fix items_after_statements for sub-functions
2018-10-07 17:09:32 -07:00
Devon Hollowood
6528749083
Fix items_after_statements for use
statements
2018-10-07 17:09:32 -07:00
Ryan Cumming
9bd4e5469e
Don't suggest cloned() for map Box deref
...
Boxes are a bit magic in that they need to use `*` to get an owned value
out of the box. They implement `Deref` but that only returns a
reference. This means an easy way to convert an `Option<Box<T>>` to an
`<Option<T>` is:
```
box_option.map(|b| *b)
```
However, since b36bb0a6
the `map_clone` lint is detecting this as an
attempt to copy the box. Fix by excluding boxes completely from the
deref part of this lint.
Fixes #3274
2018-10-08 06:20:32 +11:00
Josh Mcguigan
8a77a25b8a
Fix excessive_precision false positive
2018-10-07 11:38:20 -07:00
Philipp Hansch
63ceabf0cf
Merge pull request #3280 from d-dorazio/fix-new_without_default-should-not-fire-unsafe-new
...
new_without_default should not warn about unsafe new
2018-10-07 13:09:37 +01:00
Manish Goregaokar
5dcb90e29d
Merge pull request #3279 from phansch/fix_fp_in_fn_to_numeric_cast_with_truncation
...
Fix FP in `fn_to_numeric_cast_with_truncation`
2018-10-07 04:27:51 -07:00
Philipp Hansch
d365742bc6
Fix FP in fn_to_numeric_cast_with_truncation
...
We only want this lint to check casts to numeric, as per the lint title.
Rust already has a built-in check for all other casts
[here][rust_check].
[rust_check]: 5472b0718f/src/librustc_typeck/check/cast.rs (L430-L433)
2018-10-07 12:50:36 +02:00
Daniele D'Orazio
59c4ff77f1
new_without_default should not warn about unsafe new
2018-10-07 12:39:54 +02:00
Dylan Maccora
d129d049c6
Adding more detail to filter_map lint documentation.
2018-10-07 11:24:09 +11:00
Manish Goregaokar
e9c025ea70
Add license header to Rust files
2018-10-06 09:43:08 -07:00
Manish Goregaokar
53d41e5c50
Rustup for https://github.com/rust-lang/rust/pull/54741
2018-10-05 13:41:40 -07:00
Manish Goregaokar
cbde8201c5
Remove unused utils
2018-10-05 13:26:39 -07:00
Manish Goregaokar
75965030c7
Merge pull request #3251 from rust-lang-nursery/relicense-rewrite
...
[do not merge] Relicensing rewrite
2018-10-05 20:14:55 +02:00
Philipp Hansch
1544a1a681
Merge remote-tracking branch 'origin/master' into relicense-rewrite
2018-10-05 07:18:24 +02:00
Joel Gallant
163780ee0b
Solves #3222 by checking the BareFnTy Abi type
2018-10-04 18:49:03 -06:00
Philipp Hansch
391d53db66
Add hidden lifetime parameters to fix warning
2018-10-04 21:59:30 +02:00
Philipp Hansch
c0ab8b2531
Reimplement the fn_to_numeric_cast_with_truncation
lint
2018-10-04 21:44:16 +02:00
Philipp Hansch
7adf24ebb0
Improve docs of fn_to_numeric_cast
...
Closes #2980
2018-10-04 18:09:09 +02:00
Matthias Krüger
fd5ea0ddf7
resolve build warnings in clippy_lints/src/format.rs
2018-10-04 16:34:41 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
c3e3be374b
Merge pull request #3256 from rust-lang-nursery/fix-2796
...
Fix 2796 and 3020
2018-10-04 08:51:00 +02:00
mcarton
5173ed0c03
Don't suggest to_string().to_string
in USELESS_FORMAT
2018-10-03 20:59:59 +02:00
Philipp Hansch
f42272102a
Reimplement the fn_to_numeric_cast
lint
2018-10-03 12:02:06 +02:00
Manish Goregaokar
c430147942
Fix push_item_path call (rustup to 4cf11765dc98536c6eedf33f2df7f72f6e161263)
2018-10-03 02:06:26 -07:00
mcarton
7eebd5b20c
Ignore format!
with precision in USELESS_FORMAT
2018-10-02 23:57:22 +02:00
Oliver Schneider
913a5c9b56
Trailing newline
2018-10-02 15:18:56 +02:00
Oliver Schneider
696dc369df
FIx dogfood
2018-10-02 15:17:56 +02:00
Oliver Schneider
b36bb0a68d
Reimplement the map_clone
lint from scratch
2018-10-02 15:13:43 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
11cc8472a9
Merge pull request #3245 from JoshMcguigan/wrong_self_convention-1530
...
Correct false positive in wrong_self_convention lint for to_mut
2018-10-02 14:54:36 +02:00
Josh Mcguigan
f142098474
Correct false positive in wrong_self_convention lint for to_mut
2018-10-02 04:47:38 -07:00
Manish Goregaokar
057243f16b
relicensing: Remove map_clone
...
This removes the code added in https://github.com/rust-lang-nursery/rust-clippy/pull/427
2018-10-02 12:51:38 +02:00
Manish Goregaokar
fffcd093b2
relicensing: Remove fn_to_numeric_cast, fn_to_numeric_cast_with_truncation
...
This removes the code added in https://github.com/rust-lang-nursery/rust-clippy/pull/2814
2018-10-02 12:49:27 +02:00
Manish Goregaokar
be1094bd8d
ScalarMaybeUndef -> Scalar (Rustup to e812ca472a2a5284e9f15cd9af32285d7ff3fd39)
2018-10-02 10:35:26 +02:00
Philipp Hansch
eb5f146f14
Fix 'impossible case reached' ICE
2018-10-01 22:34:52 +02:00
Michael Wright
50133fbd3a
Merge branch 'master' into unnecessary_filter_map
2018-09-30 06:39:56 +02:00
Josh Mcguigan
e25f884e6f
Fixes #3180 , suppress excessive_precision lint for floats with no decimal part
2018-09-29 07:39:30 -07:00
Michael Wright
c2ee9c29ab
Merge branch 'master' into unnecessary_filter_map
2018-09-29 15:27:47 +02:00
Michael Wright
06f6b36025
rustfmt
2018-09-29 14:18:50 +02:00
Michael Wright
efdc739dfc
Move unnecessary_filter_map to a submodule
2018-09-29 14:12:40 +02:00
Philipp Krones
67d85bc47d
Merge pull request #3224 from matthiaskrgr/clippy_self__use_self
...
fix some clippy::pedantic warnings found in the codebase.
2018-09-28 15:26:50 +02:00
Philipp Hansch
8e808664fa
Merge pull request #3178 from ms2300/bad_unwrap
...
Fix for bad get unwrap suggestion
2018-09-28 07:38:00 +01:00
Michael Wright
4b4d758ce0
Fix warnings in clippy_lints
2018-09-27 06:29:48 +02:00
Michael Wright
2f364d9ac5
Merge branch 'master' into unnecessary_filter_map
2018-09-27 06:12:01 +02:00
Matthias Krüger
9fae4693f9
fix clippy::single-match-else and clippy::match_same_arms warnings in clippys codebase
2018-09-26 22:25:01 +02:00
Matthias Krüger
2a31937cc9
fix all clippy::use_self pedantic warnings found in the codebase.
...
cc #3172
2018-09-26 22:24:18 +02:00
Matthias Krüger
fc35c20a0a
rustup
...
fix breakage by https://github.com/rust-lang/rust/pull/53824
use smallvec crate instead of rustcs type alias.
2018-09-26 15:57:38 +02:00
Michael Wright
f5ffac4fce
Implement unnecesary_filter_map lint
2018-09-26 06:52:36 +02:00
Jane Lusby
14feb3670f
Lint for chaining flatten after map
...
This change adds a lint to check for instances of `map(..).flatten()`
that can be trivially shortened to `flat_map(..)`
Closes #3196
2018-09-24 14:29:16 -07:00
Michael Wright
ab71f08663
Fix single_char_pattern crash ( #3204 )
...
This commit fixes the crash by removing constant checking from the lint.
Closes #3204 .
2018-09-24 08:33:57 +02:00
ms2300
523ba2a009
Full fix of get unwrap issue
2018-09-23 19:53:25 -07:00
ms2300
de8d233b06
#3006 : Fixing for .get().unwrap().foo()
2018-09-23 19:53:25 -07:00
Philipp Krones
bc6d85ceaf
Merge pull request #3207 from mikerite/fix-3206
...
Fix double_parens false positive
2018-09-23 18:24:27 +02:00
Philipp Krones
af2d6a0c14
Merge pull request #3191 from vi/suggest_with_applicability
...
Use span_suggestion_with_applicability instead of span_suggestion
2018-09-23 15:45:55 +02:00
Michael Wright
867ac98d38
Fix double_parens false positive
...
Closes #3206
2018-09-22 17:20:34 +02:00
flip1995
987b34d090
Another Applicability adjustment
2018-09-20 14:38:48 +02:00
Vitaly _Vi Shukela
52fb7d461e
Applicability adjustment per additional comments
2018-09-20 14:38:48 +02:00
Vitaly _Vi Shukela
58729346be
Fill in Applicability from review comments by @flip1995
2018-09-20 14:38:48 +02:00
Vitaly _Vi Shukela
3eccccb367
Fix indents
2018-09-20 14:38:48 +02:00
Vitaly _Vi Shukela
2781cac839
Apply subset of "cargo fmt".
2018-09-20 14:38:47 +02:00
Vitaly _Vi Shukela
3e853a632e
Add forgotten function: span_suggestion*s* to the previous refactoting
2018-09-20 14:38:47 +02:00
Vitaly _Vi Shukela
d4c994e670
Supplement DiagnosticBuilderExt with Applicability
2018-09-20 14:38:47 +02:00
Vitaly _Vi Shukela
92034e20c8
Use span_suggestion_with_applicability instead of span_suggestion
2018-09-20 14:38:47 +02:00
Jay Kickliter
79cda3bb1e
mem_replace: fix grammar.
2018-09-19 14:54:38 -07:00
Jay Kickliter
2f53aaa5bd
mem_replace: match on path.
2018-09-19 14:41:22 -07:00
Jay Kickliter
12c7bc1e58
mem_replace: apply update_lints tool.
2018-09-19 14:41:22 -07:00
Jay Kickliter
1b6d739ce3
mem_replace: make examples compilable.
2018-09-19 14:38:34 -07:00
Jay Kickliter
598df08d88
Add lint for mem::replace(.., None)
.
...
Suggest `Option::take()` as an alternative.
2018-09-19 14:38:34 -07:00
Philipp Hansch
b6707ffc42
Merge pull request #3187 from flip1995/internal_fn
...
New internal lint: compiler_lint_functions
2018-09-19 19:43:48 +01:00
flip1995
a8b681cc2c
Fix c_void path
...
This got changed in rust-lang/rust#53910
2018-09-17 11:20:27 +02:00
Michael Wright
c78cf042ff
Remove unneeded check for method call
...
The check can be removed because the call to `method_chains_args`
already performs this check.
2018-09-16 13:08:00 +02:00
flip1995
021748eb6a
Replace another occurrence of "".to_owned()
2018-09-15 11:25:40 +02:00
Matthias Krüger
f3add4acb4
convert "".to_string() and "".to_owned() to String::new()
2018-09-15 11:20:35 +02:00
flip1995
144281c537
Formatting
2018-09-15 11:02:00 +02:00
flip1995
a4e1a90705
Fix warnings of compiler_lint_functions
2018-09-15 11:02:00 +02:00
flip1995
aaeeaa5330
Add internal lint compiler_lint_functions
2018-09-15 11:01:16 +02:00
Eduard-Mihai Burtescu
85caaf5905
Fix useless_attribute
to also whitelist unused_extern_crates
.
2018-09-15 11:16:45 +03:00
Eduard-Mihai Burtescu
9219fc6c5c
Reintroduce extern crate
for non-Cargo dependencies.
2018-09-15 11:10:51 +03:00
flip1995
f49f133cba
Fix pedantic filter_map warnings
2018-09-14 12:56:25 +02:00
Manish Goregaokar
7b530c79b2
Add match on StructCtor
2018-09-14 12:41:20 +05:30
Philipp Hansch
dac5e2d3a5
Merge pull request #3140 from matthiaskrgr/redundant_casts
...
fix warnings about trivial casts, mostly {i,u}128 -> {i,u}128, such as "i128::min_value() as i128"
2018-09-13 20:37:13 +01:00
Philipp Hansch
07cb45bc85
Merge pull request #3166 from flip1995/travis_internal
...
Run internal lints on the Clippy code base
2018-09-13 17:22:48 +01:00
Matthias Krüger
28424ecbfa
fix warnings about trivial casts, mostly {i,u}128 -> {i,u}128, such as "i128::min_value() as i128"
2018-09-13 07:59:12 +02:00
Philipp Hansch
e8400061bd
Merge pull request #3085 from mikerite/revert-98dbce
...
Revert "Fix E0502 warnings"
2018-09-13 06:33:26 +01:00
Boyu Yang
4827ab978e
Remove a wrong suggestion.
2018-09-13 13:01:23 +08:00
Boyu Yang
60e8da1647
Fix typo in examples.
2018-09-13 11:51:58 +08:00
flip1995
e28440d2e0
Change Hash{Map, Set} to FxHash{Map, Set}
2018-09-12 01:34:52 +02:00
flip1995
cfa3c33b1d
Fix lint_without_lint_pass lint
2018-09-12 01:34:04 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
1c1030f83f
Merge pull request #3152 from PSeitz/master
...
fixes #3151 by skipping the lint instead of crashing
2018-09-10 13:44:47 +02:00
Pascal Seitz
d512c2bcce
add spaces
2018-09-10 09:03:33 +02:00
Philipp Krones
f30cf51a70
Merge pull request #3135 from JoshMcguigan/explicit_counter_loop-1219
...
Closes #1219 false positive for explicit_counter_loop
2018-09-09 23:49:03 +02:00
Pascal Seitz
43549ebbf8
fixes #3151 by skipping the lint instead of crashing
2018-09-08 15:30:50 +02:00
Josh Mcguigan
9168746c38
Corrected explicit_counter_loop behavior with nested loops
2018-09-07 20:46:36 -07:00
Josh Mcguigan
53c262048c
Fix #1219 false positive for explicit_counter_loop
2018-09-07 19:58:19 -07:00
Matthias Krüger
f6935be71e
clippy_lints: enable crate_visibility_modifier since it is used but no longer part of 2018 edition.
...
Fixes build with https://github.com/rust-lang/rust/pull/53999
2018-09-08 01:32:40 +02:00
flip1995
fa3e3cb6ea
Fix #3145 by removing assert
2018-09-07 17:18:00 +02:00
Josh Mcguigan
ce554267b8
Updated explicit_counter_loop tests based on discussion in #3135
2018-09-07 05:32:56 -07:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
63a46b1e1a
Merge pull request #3129 from mipli/3091-numeric-typo
...
Add lint for misstyped literal casting
2018-09-07 09:54:43 +02:00
Michael A. Plikk
7bf8d8ba09
Simplified boolean expression for checking literal suffixes
2018-09-06 17:19:38 +02:00
Michael A. Plikk
986c772c24
Reduce number of split_at calls
2018-09-06 16:26:17 +02:00
Josh Mcguigan
edfa9feac2
Corrected explicit_counter_loop missing lints if variable used after loop
2018-09-06 06:20:25 -07:00
Matthias Krüger
a0f56edfc3
print_with_newline / write_with_newline: don't warn about string with several \n
s in them.
...
Fixes #3126
2018-09-06 12:59:34 +02:00
Matthias Krüger
0a8ceaf8b0
rustfmt clippy_lints/src/write.rs
2018-09-06 12:33:00 +02:00
Matthias Krüger
554fe1ed5c
remove "clippy::" lint prefix from lint name in doc url.
...
Fixes #3132
2018-09-06 00:45:57 +02:00
Michael A. Plikk
38d287fecd
Add lint for misstyped literal casting
2018-09-05 19:46:49 +02:00
daubaris
009c29069c
switched to ticks for chars
2018-09-04 18:56:48 +03:00
daubaris
db391c4613
Merge branch 'master' of https://github.com/rust-lang-nursery/rust-clippy into range-plus-one
2018-09-04 18:52:18 +03:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
b7587d8176
Merge pull request #3125 from nrc/pub-conf
...
Make `Default` do what `default` used to do
2018-09-04 10:09:38 +02:00
Josh Holmer
ed9cd1530d
More if_chain
2018-09-03 23:58:10 -04:00
Josh Holmer
48e6be42d7
Rustup
2018-09-03 23:50:24 -04:00
Josh Holmer
061b2f3057
Apply applicability
2018-09-03 23:29:44 -04:00
Josh Holmer
dfed9751bd
Majority of PR changes
2018-09-03 23:29:44 -04:00
Josh Holmer
fbc93c0166
Lint against needless uses of collect()
...
Handles cases of `.collect().len()`, `.collect().is_empty()`, and
`.collect().contains()`. This lint is intended to be generic enough to
be added to at a later time with other similar patterns that could be
optimized.
Closes #3034
2018-09-03 23:29:44 -04:00
Nick Cameron
4050a68989
Make Default
do what default
used to do
2018-09-04 09:13:48 +12:00
daubaris
2f0a99a3a4
fixed known problems expression
2018-09-03 23:01:28 +03:00
daubaris
1f3676f7d0
Merge branch 'master' of https://github.com/rust-lang-nursery/rust-clippy into range-plus-one
2018-09-03 18:24:47 +03:00
daubaris
b825578a4a
backticks and testcase
2018-09-03 18:24:38 +03:00
Philipp Hansch
c0513097ab
Merge pull request #3092 from illicitonion/issue-2879
...
default_trait_access skips <F as Default>::default()
2018-09-03 17:24:33 +02:00
daubaris
1615a8a2b6
Merge branch 'master' of https://github.com/rust-lang-nursery/rust-clippy into range-plus-one
2018-09-03 17:21:13 +03:00
Josh Triplett
779988303a
iter conservation efforts: save the endangered .iter() and .into_iter()
...
Make explicit_iter_loop and explicit_into_iter_loop allow-by-default, so
that people can turn them on if they want to enforce that style; avoid
presenting them as *the* idiomatic Rust style, rather than just *a* style.
2018-09-03 01:24:46 -07:00
Nick Cameron
d6f01f3a6c
Make Conf::default
available
...
Fixes RLS
2018-09-03 13:57:50 +12:00
Daniel Wagner-Hall
9f0216d520
Merge branch 'master' into issue-2879
2018-09-03 00:01:57 +01:00
Daniel Wagner-Hall
939d842ea1
Simplify
2018-09-02 23:42:07 +01:00
Daniel Wagner-Hall
368223a341
Use types rather than strings
2018-09-02 23:37:28 +01:00
Michael Wright
19157c02cb
Fix #3112
2018-09-02 09:38:25 +02:00
daubaris
846c3dba2c
resolved conflicts
2018-09-01 09:37:42 +03:00
Manish Goregaokar
c81d70e6bd
Merge pull request #2977 from flip1995/tool_lints
...
Implement tool_lints
2018-09-01 11:22:23 +05:30
Manish Goregaokar
20dfaf7842
declare_lint -> declare_tool_lint
2018-08-31 00:34:48 -07:00
Oliver Schneider
73e8416df3
Merge pull request #3081 from mikerite/fix-3078
...
Fix #3078
2018-08-31 09:05:39 +02:00
Michael Wright
c6074a94b9
Merge branch 'master' into fix-3078
2018-08-31 06:17:11 +02:00
Michael Wright
daacac6b97
Revert "fix-3078: verify test case"
...
This reverts commit 6256ad05ba
.
2018-08-31 06:15:55 +02:00
daubaris
679bc32f46
range_plus_one suggestion should not remove braces fix
2018-08-30 20:06:13 +03:00
Philipp Hansch
b87ab5ccf2
Merge pull request #3076 from mbrubeck/patch-1
...
Remove incorrect note from string_add_assign docs
2018-08-29 20:09:38 +01:00
Manish Goregaokar
e0ad732226
Merge pull request #3105 from frewsxcv/frewsxcv-private
...
Make clippy_lints::{utils,consts} modules private, remove unused items.
2018-08-29 11:24:00 -07:00
flip1995
daa4f0ad34
Implement backwards compatibility changes introduced by rust-lang/rust#53762
2018-08-29 11:08:29 -07:00
flip1995
d1f2f0c34c
Fix some rebase fallout
2018-08-29 11:08:29 -07:00
flip1995
f3bb161f0e
Adapt codebase to the tool_lints
2018-08-29 11:08:29 -07:00
flip1995
8c07772dbb
Switch to declare_tool_lint macro
2018-08-29 11:08:29 -07:00
flip1995
392235d6e1
Switch to tool_lints
2018-08-29 11:08:29 -07:00
Corey Farwell
f42442b6e0
dont deref
2018-08-29 09:07:09 -05:00
Corey Farwell
53928d5367
clippy suggestion
2018-08-29 08:27:32 -05:00
Corey Farwell
6445a5d79d
derive copy/clone
2018-08-29 08:01:05 -05:00
Corey Farwell
d5534ca9db
bring back sugg::range
2018-08-29 07:46:03 -05:00
Corey Farwell
9a8f206662
eof newline
2018-08-29 07:43:40 -05:00
Corey Farwell
2a486528ee
utilize carrier
2018-08-29 07:42:43 -05:00
Corey Farwell
2fa7351c1e
suggest wrapping_offset as well
2018-08-29 07:40:00 -05:00
Corey Farwell
61c20c148e
if no suggestion, dont add suggestion
2018-08-29 07:12:22 -05:00
Corey Farwell
f7d1ef90a0
utilize .is_unsafe_ptr
2018-08-29 07:08:59 -05:00
Corey Farwell
a48a6ef10f
utilize cx.tcx.types.usize
2018-08-29 07:07:23 -05:00
Corey Farwell
a7c1ea96c4
tweak comment
2018-08-29 07:03:50 -05:00
Corey Farwell
feb3e9fd5f
switch lint from 'style' to 'complexity'
2018-08-29 07:02:26 -05:00
Corey Farwell
5ebae01c1e
New lint: Suggest ptr.add([usize])
over ptr.offset([usize] as isize)
.
...
First part of #3047 .
2018-08-28 23:21:29 -05:00
Corey Farwell
05f637cf88
Make clippy_lints::{utils,consts} modules private, remove unused items.
2018-08-28 21:32:20 -05:00
Oliver Schneider
d99cea0f16
Update imports and rustup
2018-08-28 13:13:42 +02:00
Daniel Wagner-Hall
350036a0c7
default_trait_access skips <F as Default>::default()
...
This includes the type name, so is clear, and may be necessary.
There doesn't seem to be an obviously cleaner way to pull out the
literal text of the named type here.
Fixes #2879
2018-08-27 23:22:07 +01:00
Matthias Krüger
fc31dc01de
docs: make example in new_without_default lint syntax highlighted
2018-08-27 17:35:30 +02:00
Philipp Krones
9ce826ade1
Merge pull request #3082 from mikerite/move-range-lints
...
Move some range lints to complexity
2018-08-26 15:08:21 +02:00
Michael Wright
95fedd2273
Revert "Fix E0502 warnings"
...
This reverts commit 98dbce4fe4
.
The compiler no longer emits the warnings in #2982 with the original
code.
2018-08-26 11:21:22 +02:00
Michael Wright
eef3ffab35
Remove iterator_find_map
feature attribute
...
Closes #3083
2018-08-26 11:11:47 +02:00
Michael Wright
cc87dc7539
Move some range lints to complexity
...
Recategorize `range_plus_one` and `range_minus_one` to `complexity`.
This moves `range_plus_one` out of the nursery as the inclusive range
syntax is now stable. Both are moved to `complexity` as it is more
consistent with other lints such as `int_plus_one`.
2018-08-26 10:57:04 +02:00
Michael Wright
6256ad05ba
fix-3078: verify test case
...
Check the crash test case by commenting out the fix
2018-08-25 22:35:06 +02:00
Michael Wright
45ceecc79c
Fix #3078
2018-08-25 14:49:56 +02:00
Philipp Krones
b1620f5d3a
Merge pull request #3080 from matthiaskrgr/manual_swap_example
...
add how-to example for std::mem::transmute() usage instead of manual swap
2018-08-24 19:47:17 +02:00
Matthias Krüger
f7be2a0416
add how-to example for std::mem::transmute() usage instead of manual swap
2018-08-24 18:41:49 +02:00
Philipp Krones
e91147832c
Merge pull request #3048 from goodmanjonathan/assign_op
...
deprecate assign_ops lint
2018-08-24 18:29:31 +02:00
Philipp Krones
562c576ed3
Merge pull request #3059 from elpiel/writeln_empty_string_harcoded-suggestion
...
#3016 writeln_empty_string Hardcoded suggestion
2018-08-24 18:28:50 +02:00
Niklas Fiekas
afdf350060
Add copy_iterator lint ( #1534 )
2018-08-24 11:57:48 +02:00
Matthias Krüger
c98987f390
fix clippy breakage due to https://github.com/rust-lang/rust/pull/52602
2018-08-23 21:41:30 +02:00
Matt Brubeck
6a0703664b
Remove incorrect note from string_add_assign docs
...
The docs claim that `String::push_str` is better than `String::add` because `String::add` allocates a new string and drops the old one, but this is not true. In fact, `add` reuses the existing string and grows it only if its capacity is exceeded, exactly like `push_str`. Their performance is identical since `add` is just a wrapper for `push_str`:
```
fn add(mut self, other: &str) -> String {
self.push_str(other);
self
}
```
35bf1ae257/src/liballoc/string.rs (L1922-L1925)
2018-08-23 08:38:41 -07:00
Matthias Krüger
8ab16b678c
remove macro_vis_matcher feature gate since it is stable now.
...
Warning was:
warning: the feature `macro_vis_matcher` has been stable since 1.29.0 and no longer requires an attribute to enable
--> src/lib.rs:4:12
|
4 | #![feature(macro_vis_matcher)]
| ^^^^^^^^^^^^^^^^^
|
= note: #[warn(stable_features)] on by default
2018-08-23 15:40:51 +02:00
flip1995
37099ae034
Remove now stable tool_attributes feature
2018-08-23 15:36:07 +02:00
Matthias Krüger
712d2d4fa1
rustup, fix breakage introduced by https://github.com/rust-lang/rust/pull/53581
2018-08-22 23:34:52 +02:00
Lachezar Lechev
76f7bfcefd
#3016 Add backticks for the msg
2018-08-20 15:50:15 +02:00
Lachezar Lechev
c292b80783
#3016 Add feedback and implement test for fixed hardcoded suggestion
2018-08-20 15:33:43 +02:00
Lachezar Lechev
3015987f27
#3016 [WIP] Implement feedback and suggestions
2018-08-20 14:03:13 +02:00
Manish Goregaokar
a7bea134d3
Remove implied rust_2018 feature
...
We are already on the edition and this feature is implied.
2018-08-19 19:14:47 -07:00
Manish Goregaokar
76321d3300
codemap -> source_map
...
https://github.com/rust-lang/rust/pull/52953
2018-08-19 19:06:54 -07:00
Lachezar Lechev
6cb94630fb
WIP of #3016 for hardocded suggestion for writeln on empty string
2018-08-16 18:20:06 +02:00
Michael Wright
1c681b6ab6
fix-2927: Update formatting
2018-08-16 07:13:52 +02:00
Michael Wright
bbd67c9b78
Fix #2927
2018-08-15 08:11:07 +02:00
Manish Goregaokar
bac76afb5a
Rustup to rustc 1.30.0-nightly (23f09bbed 2018-08-14)
2018-08-14 11:26:28 -07:00
Philipp Krones
84aa49935d
Merge pull request #3026 from dwijnand/fxhash
...
Add an internal lint for FxHashMap/FxHashSet
2018-08-14 13:04:48 +02:00
Philipp Krones
b2a4013c14
Merge pull request #3014 from estk/allow-write-multi-newline
...
Allow print/write with multiple newlines
2018-08-14 12:54:05 +02:00
Philipp Krones
826d998cd2
Merge pull request #3036 from matthiaskrgr/clippy_self
...
fix 2 clippy warnings
2018-08-14 12:53:01 +02:00
Dale Wijnand
7933d445d1
Move shadow_unrelated to pedantic
2018-08-14 09:52:27 +01:00
Dale Wijnand
22ff5a3ef1
Avoid new_without_default_derive in DefaultHashTypes
2018-08-14 09:25:09 +01:00
Jonathan Goodman
160b41dae3
deprecate assign_ops lint
2018-08-13 16:12:41 -05:00
Dale Wijnand
1812707d39
Use utils::span_lint_and_sugg in default_hash_types
2018-08-13 11:49:57 +01:00
Dale Wijnand
8fc425b676
Add an internal lint for FxHashMap/FxHashSet
2018-08-12 16:15:36 +01:00
Matthias Krüger
88d693918f
docs: add more suggestions on how to fix clippy findings to the online lint list.
2018-08-12 11:29:44 +02:00
Matthias Krüger
66ca3954ec
fix 2 clippy warnings
2018-08-11 23:16:47 +02:00
Oliver Schneider
99a087bea5
Update to rustc master
2018-08-08 13:19:07 +02:00
Oliver Schneider
d722489e71
Merge pull request #2823 from flip1995/thingies_things
...
Replace cfg_attr(rustfmt... with rustfmt::skip
2018-08-08 13:14:20 +02:00
Nick Cameron
b109e10334
Fix build
2018-08-08 18:01:06 +12:00
Evan Simmons
550ff84ecd
Allow print/write with multiple newlines
2018-08-07 12:01:10 -08:00
Oliver Schneider
328fea3e0d
Rustup
2018-08-07 16:34:17 +02:00
Oliver Schneider
77025557f9
Merge pull request #3009 from dwijnand/option-map_or
...
Use Option::map_or
2018-08-07 13:11:30 +02:00
Oliver Schneider
1af90085a1
Merge pull request #3008 from dwijnand/remove-workaround
...
Remove #[allow(rust_2018_idioms)] workaround
2018-08-07 13:10:54 +02:00
Oliver Schneider
dc5ee5aa19
Merge pull request #3010 from mikerite/issue2971
...
Fix #2971
2018-08-07 13:10:26 +02:00
Scott McMurray
73e097e9f1
Fix the build after https://github.com/rust-lang/rust/pull/53016
...
In-band lifetimes are no longer in the edition, so update the one place that was using them.
2018-08-07 00:05:09 -07:00
Michael Wright
a3d7698fd9
Fix #2971
2018-08-07 05:37:11 +02:00
Dale Wijnand
7a5ede677b
Use Option::map_or
2018-08-06 17:52:09 +01:00
Dale Wijnand
1a310bfdf7
Remove #[allow(rust_2018_idioms)] workaround
2018-08-06 17:51:04 +01:00
Oliver Schneider
b18a3c5b60
Merge pull request #3007 from mikerite/issue3000
...
Fix #3000
2018-08-06 09:16:42 +02:00
Michael Wright
ffce3c77e4
Fix #3000
2018-08-06 08:20:50 +02:00
Philipp Hansch
f6c4e303c9
Merge pull request #2999 from flip1995/single_char_pattern
...
Fix single_char_pattern lint for escaped chars
2018-08-06 07:05:04 +01:00
Philipp Hansch
32e4897854
Merge pull request #2975 from aaudiber/lint-identity-into-iter
...
Lint using identity into_iter conversion
2018-08-05 20:38:28 +01:00
Philipp Hansch
a016d4efe0
Merge pull request #2991 from mikerite/issue2979
...
Fix #2979
2018-08-05 20:35:55 +01:00
Nick Cameron
99dcc70dcd
Fix error in CrateType
in latest Rust
2018-08-05 09:35:08 +12:00
Manish Goregaokar
0ff762f7cd
Rustup to 59fa6bd6c
2018-08-03 10:14:25 -07:00
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
flip1995
12f2d61fa9
Replace cfg_attr(rustfmt... thingies
2018-08-02 23:04:20 +02:00
Philipp Krones
5d9ca00d94
Merge pull request #2992 from etaoins/allow-pass-by-ref-on-adt-return
...
Allow pass by ref when returning ADT with ref
2018-08-02 22:39:04 +02:00
Alex Crichton
40349b23ea
Fix breakage from rust-lang/rust#52949
2018-08-02 13:00:14 -07:00
Manish Goregaokar
f43d0e53b2
Make indexing_slicing a restriction lint ( fixes #2933 )
2018-08-02 10:06:03 -07:00
reujab
1afb7e895b
removed colon
2018-08-02 11:52:46 -04: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
Andrew Audibert
3851c0e22b
Address build warning
2018-07-31 23:53:45 -07: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
Philipp Hansch
4dbc62baf8
Merge pull request #2983 from mikerite/fix_warnings_20180730
...
Fix compiler warnings
2018-08-01 06:18:18 +01:00
Michael Wright
98dbce4fe4
Fix E0502 warnings
...
Fixes #2982
2018-08-01 06:33:08 +02:00
flip1995
74fcf7de4a
single_char_pattern: lint only on the argument span
2018-07-31 12:20:32 +02:00
Michael Wright
9c53b1560c
Fix unused_mut warning
2018-07-31 07:45:05 +02:00
Andrew Audibert
0ea1afab3a
Lint using identity into_iter conversion
2018-07-29 21:37:31 -07:00
Philipp Krones
4010788b3a
Merge pull request #2917 from mikerite/issue2894
...
Fix #2894
2018-07-29 23:54:03 +02:00
Philipp Hansch
0aeb82cb67
Merge pull request #2959 from chrisduerr/master
...
Add known problem to `needless_borrow` lint
2018-07-29 12:15:17 +02:00
Philipp Hansch
946340acfe
Fix ICE with 'while let (..) = x.iter()'
2018-07-29 11:00:26 +02:00
Michael Wright
d7ddb2abba
Add use_self
comment
2018-07-28 10:42:21 +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
bf3f976a43
Fix regression in print_literal
2018-07-25 17:31:17 -04:00
Philipp Hansch
e1096391dc
Merge pull request #2960 from matthiaskrgr/typos
...
fix a bunch of typos found by codespell
2018-07-25 22:57:10 +02:00
Philipp Hansch
3bd062e1d9
Merge pull request #2948 from Nemo157/patch-1
...
Add known problem for redundant_closure lint
2018-07-25 22:55:36 +02: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
Christian Duerr
13353111da
Add known problem to needless_borrow
lint
...
The `needless_borrow` lint is temporarily disabled because of some false
positives it causes in combination with the `derive` macro.
However the documentation does not explain these issues, but instead
lists `Known problems: None`. To make it clear why this lint is
currently not enabled, a description of the false positives caused by
this lint has been added to the `Known problems` section.
2018-07-25 14:54:09 +02:00
Michael Wright
137f944315
Fix warnings
2018-07-25 06:34:29 +02:00
Michael Wright
5e23fcec0b
Merge branch 'master' into issue2894
2018-07-25 06:27:36 +02:00
Dale Wijnand
a1cce2d06a
Inline utils::in_external_macro
2018-07-24 10:38:58 +01:00
Dale Wijnand
b1fa7b91ba
Delegate utils::in_external_macro to rustc::lint::in_external_macro
2018-07-24 10:34:18 +01:00
Philipp Krones
b02e53de34
Merge pull request #2951 from etaoins/allow-pass-by-ref-on-ref-return
...
Allow pass by reference if we return a reference
2018-07-24 11:23:01 +02:00
Philipp Krones
3f9b837ec8
Merge pull request #2953 from dwijnand/misrefactored_assign_op-known-problem-doc
...
Expand on misrefactored_assign_op known problems
2018-07-24 11:19:58 +02:00
Ryan Cumming
0afa5e1e21
Merge branch 'master' into allow-pass-by-ref-on-ref-return
2018-07-24 19:03:43 +10:00
Dale Wijnand
70f5bb1ff6
Tweak
...
misrefactored_assign_op's known problems wording
2018-07-24 09:26:28 +01:00
Dale Wijnand
6ad7a92ff8
Expand on misrefactored_assign_op known problems
2018-07-24 08:39:18 +01:00
Oliver Schneider
afd91248ed
Rustup
2018-07-23 13:01:12 +02:00
Ryan Cumming
7c74c3e508
Wrap comment at 80 columns
2018-07-23 19:37:41 +10:00
Ryan Cumming
89a4558056
Add Known Problem for multiple lifetimes
2018-07-23 19:33:52 +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
Wim
26eea10ec1
Add known problem for redundant_closure lint
...
Documenting https://github.com/rust-lang-nursery/rust-clippy/issues/1439 until it gets fixed.
2018-07-21 18:05:02 +02:00
Oliver Schneider
8085ed733f
Don't invent new magic keywords
2018-07-21 12:36:01 +02:00
Oliver Schneider
2fa85d86e0
Rustup
2018-07-20 22:50:04 +02:00
Manish Goregaokar
1f65617372
Merge branch 'macro-use' into HEAD
2018-07-20 00:52:01 -07:00
Manish Goregaokar
77b0300a55
Merge branch 'pr-2939' into HEAD
2018-07-20 00:51:57 -07:00
Manish Goregaokar
3c2b54870e
Remove warning
2018-07-20 00:50:02 -07:00
Manish Goregaokar
5918a3fc1e
Remove import of if_chain
2018-07-20 00:50:02 -07:00
Alexander Regueiro
4d2c838a32
Update to nightly
2018-07-20 03:59:07 +01: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
Manish Goregaokar
c7676356b8
Remove import of matches
2018-07-19 01:06:02 -07:00
Manish Goregaokar
5d74e2096b
Remove import of rustc
2018-07-19 00:53:23 -07:00
Manish Goregaokar
00ba67a12b
Remove import of lazy_static
2018-07-19 00:11:15 -07:00
Manish Goregaokar
c1745cde82
Remove import of serde
2018-07-19 00:02:08 -07:00
Manish Goregaokar
c05adc545c
Temporarily allow macro_use_extern_crate
2018-07-18 20:24:37 -07:00
Michael Wright
a05c9b63ce
use_self: Simplify spanning
2018-07-18 07:57:50 +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
6992937002
Update for hir renamings in rustc
2018-07-16 15:07:39 +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
Oliver Schneider
5e085e4310
Remove use of ty_to_def_id
2018-07-15 02:04:23 +02:00
Oliver Schneider
1e9f076254
Ignore spans when comparing expressions
2018-07-15 00:00:27 +02:00
Michael Wright
60af4a8e13
Remove duplication in missing_inline
2018-07-08 08:06:24 +02:00
Manish Goregaokar
184b99de39
Merge branch 'pr-2889'
2018-07-06 23:20:01 -07:00
Oliver Schneider
28daee4c91
Rustup
2018-07-05 13:41:51 +02:00
gnzlbg
3fec3b47b6
refactor function
2018-07-05 01:53:40 +02:00
gnzlbg
14cbdf2607
do not apply lint to executable crate type
2018-07-04 16:39:52 +02:00
gnzlbg
999a00bf5e
address reviews
2018-07-04 15:32:55 +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
547d9ca120
Rustup
2018-07-03 10:52:59 +02:00
Oliver Schneider
141f79f844
Rustup
2018-07-02 19:07:12 +02:00
Oliver Schneider
63041d070b
Rustup
2018-07-01 13:36:14 +02:00