Commit Graph

11796 Commits

Author SHA1 Message Date
Cameron Steffen
b792bb301c Factor out match_var 2021-06-09 09:47:42 -05:00
bors
dd0246813f Auto merge of #7326 - 1c3t3a:1c3t3a-issue-7324, r=flip1995
Fix false positive on `semicolon_if_nothing_returned`

Currently the [`semicolon_if_nothing_returned`](https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned) lint fires in unwanted situations where a block only spans one line. An example of this was given in #7324. This code:

```rust
use std::mem::MaybeUninit;
use std::ptr;

fn main() {
    let mut s = MaybeUninit::<String>::uninit();
    let _d = || unsafe { ptr::drop_in_place(s.as_mut_ptr()) };
}
```

yields the following clippy error:
```
error: consider adding a `;` to the last statement for consistent formatting
 --> src/main.rs:6:26
  |
6 |     let _d = || unsafe { ptr::drop_in_place(s.as_mut_ptr()) };
  |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `ptr::drop_in_place(s.as_mut_ptr());`
  |
  = note: `-D clippy::semicolon-if-nothing-returned` implied by `-D clippy::pedantic`
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
```

I updated the lint to check if the statement is inside an `unsafe` block, a closure or a normal block and if the block only spans one line, in that case the lint is not emitted.

This closes #7324.

changelog: enhanced semicolon if nothing returned according to  #7324.
2021-06-09 08:39:56 +00:00
bors
da0538eaca Auto merge of #7330 - xFrednet:0000-refactor-map-identity, r=flip1995
Refactoring identity function lints

I've noticed that we have several lints that all check for identity functions and each used their own check implementation. I moved the `is_expr_identity_function` function to `clippy_utils` and adapted all lints to reuse that one function. This should make the addition of new lints like this also easier in the future.

I've also moved the `map_identity` lint into the `methods` module. It's probably the best to review this PR by checking each commit individually. And that's it, have a great day 🙃

changelog: none
2021-06-09 08:27:05 +00:00
Bastian Kersting
5ec80f32c7 Refactored multiline check 2021-06-09 09:43:25 +02:00
xFrednet
5336f88403 Move map_identity into the methods module 2021-06-08 19:56:59 +02:00
bors
07217e3370 Auto merge of #7262 - Jarcho:while_let_on_iter_closure, r=xFrednet,flip1995
fix `while_let_on_iterator` suggestion in a closure

fixes: #7249

A future improvement would be to check if the closure is being used as `FnOnce`, in which case the original suggestion would be correct.

changelog: Suggest `&mut iter` inside a closure for `while_let_on_iterator`
2021-06-08 15:52:40 +00:00
bors
c1577ab962 Auto merge of #7325 - Y-Nak:numeric-fallback, r=giraffate
Fix FP in `default_numeric_fallback` with external macro expansion

fixes #7304

changelog: Fix `default_numeric_fallback` FP with external macro expansion
2021-06-08 01:05:17 +00:00
xFrednet
9e54ce865c Reuse is_expr_identity_function for filter_map_identity 2021-06-07 23:31:17 +02:00
xFrednet
bb3b58cfcc Reuse is_expr_identity_function for flat_map_identity 2021-06-07 23:20:11 +02:00
xFrednet
967d815a42 Extracting is_expr_identity_function into clippy_utils for reusability 2021-06-07 22:42:11 +02:00
Bastian Kersting
6bf8303c47 Refactored the check for two spans on the same line 2021-06-07 22:05:53 +02:00
Yoshitomo Nakanishi
d7a380e4b9 Fix FP in default_numeric_fallback with external macro expansion 2021-06-06 12:43:22 +09:00
Bastian Kersting
790888d520 Fixed failing tests 2021-06-05 18:54:41 +02:00
Bastian Kersting
96747c1a46 Enhance semicolon_if_nothing_returned according to #7324 2021-06-05 18:54:41 +02:00
bors
e4a1e8524c Auto merge of #7321 - flip1995:doc-release-stable-branch, r=xFrednet
Release doc: add explanation for updating the stable branch

r? `@xFrednet`

[Rendered](https://github.com/flip1995/rust-clippy/blob/doc-release-stable-branch/doc/release.md)

changelog: none
2021-06-05 11:24:47 +00:00
bors
9991040258 Auto merge of #7289 - camsteffen:needless-collect-shadow, r=Manishearth
Fix needless_collect with binding shadowing

changelog: Fix [`needless_collect`] weird output when a binding is shadowed

Fixes #7200
2021-06-04 15:39:16 +00:00
flip1995
52fc18c932
Release doc: add explanation for updating the stable branch 2021-06-04 16:57:03 +02:00
bors
b1752f616f Auto merge of #7319 - m-ou-se:cfg-not-const, r=camsteffen
Don't warn about `cfg!(..)` as a constant in assertions

This makes clippy understand that `cfg!(..)` is not just a hardcoded `true` or `false` (even though it expands to one of those).

cc `@khyperia`

changelog: Don't treat `cfg!(..)` as a constant in [`assertions-on-constants`]
2021-06-04 11:49:23 +00:00
Mara Bos
38ab1a6166 Add test for not linting on assert!(cfg!(..)). 2021-06-04 10:47:03 +02:00
Mara Bos
25639101dd Don't treat cfg!() as a constant. 2021-06-04 10:47:03 +02:00
bors
5f746a1c2a Auto merge of #7314 - flip1995:ci-win-rustup, r=flip1995
Revert "CI: update rustup before installing the toolchain on windows"

This reverts commit 716d03f86b.

This is no longer necessary, since rustup 1.24.2 is now the default
version on the windows runner.

changelog: none
2021-06-03 07:12:51 +00:00
flip1995
cd57c2307c
Revert "CI: update rustup before installing the toolchain on windows"
This reverts commit 716d03f86b.

This is no longer necessary, since rustup 1.24.2 is now the default
version on the windows runner.
2021-06-03 08:55:15 +02:00
bors
3ae8faff4d Auto merge of #7313 - flip1995:rustup, r=flip1995
Rustup

Empty rustup. No changes to Clippy in the Rust repo for the last 2 weeks 😮

changelog: none
2021-06-03 06:40:25 +00:00
flip1995
ab8bede9d7
Bump nightly version -> 2021-06-03 2021-06-03 08:38:19 +02:00
flip1995
531bfc83b6
Merge remote-tracking branch 'upstream/master' into rustup 2021-06-03 08:37:53 +02:00
bors
cf5f894536 Auto merge of #7297 - flip1995:rm-cov, r=giraffate
Remove util/cov.sh script

This script hasn't been working and wasn't used for years.

changelog: none
2021-06-01 01:22:43 +00:00
bors
ca570f9b84 Auto merge of #7265 - Jarcho:manual_str_repeat, r=giraffate
Add lint `manual_str_repeat`

fixes: #7260

There's a similar function for slices. Should this be renamed to include it, or should that be a separate lint? If we are going to have them as one lint a better name will be needed. `manual_repeat` isn't exactly clear as it's replacing a call to `iter::repeat`.

changelog: Add new lint `manual_str_repeat`
2021-06-01 00:47:05 +00:00
flip1995
f49251a33e
Remove util/cov.sh script
This script hasn't been working and wasn't used for years.
2021-05-31 17:09:21 +02:00
Jason Newcomb
cfddf0927b
Fix type checks for manual_str_repeat 2021-05-31 09:37:13 -04:00
Jason Newcomb
97311f0906
Add lint manual_str_repeat 2021-05-30 23:26:48 -04:00
bors
860cb8f977 Auto merge of #7294 - stevenengler:unsafe-ptr-deref-msg, r=Manishearth
Improve message for `not_unsafe_ptr_arg_deref` lint

changelog: Improved message for the ['not_unsafe_ptr_arg_deref'] lint

Doesn't close any issue, but implements a suggestion from https://github.com/rust-lang/rust-clippy/issues/3045#issuecomment-791556803.
2021-05-31 00:36:46 +00:00
Steven Engler
58491d386a Update message for 'not_unsafe_ptr_arg_deref' lint 2021-05-30 20:19:57 -04:00
bors
d1308aecaf Auto merge of #7292 - Jarcho:suspicious_splitn, r=flip1995
Add lint `suspicious_splitn`

fixes: #7245
changelog: Add lint `suspicious_splitn`
2021-05-30 20:32:22 +00:00
Jason Newcomb
5fa08eaf53
Evaluate constant expressions in suspicious_splitn 2021-05-30 13:25:24 -04:00
Jason Newcomb
898b6a0e07
Add lint suspicious_splitn 2021-05-30 09:49:55 -04:00
bors
5cdba7d08a Auto merge of #7287 - Jarcho:ice_7272, r=flip1995
Fix ICE in `too_many_lines`

fixes: #7272
fixes: #7286

#7272 looks like it's caused by a bug in rust-c. The span it's giving for the closure is:

```rust
$crate:: $lower($d arg) }
        }
    }
}
```

The correct span would be `$crate:: $lower($d arg)` without all the closing braces.

#7286 is definitely a clippy bug

changelog: none
2021-05-28 09:22:22 +00:00
Jason Newcomb
4ba6afd192
Fix ICE in too_many_lines due to wrong assumptions on braces. 2021-05-27 22:44:08 -04:00
Cameron Steffen
21c829e0c8 Simplify collect expr_ty 2021-05-27 20:54:56 -05:00
Cameron Steffen
6c1ba7c1bc Fix needless_collect with binding shadowing 2021-05-27 20:39:59 -05:00
bors
543a8a6aac Auto merge of #7285 - camsteffen:mini-macro-move, r=flip1995
Move mini-macro to tests/ui/auxilary

changelog: none

Merges `/mini-macro` into `/tests/ui/auxilary/proc_macro_derive.rs`.

The mini-macro crate is an artifact of the distant past. A lot has changed (#2284) and it doesn't make sense as a top-level crate anymore. Especially since we can use the auxilary folder to accompolish the same thing.
2021-05-27 17:19:39 +00:00
Cameron Steffen
6c54f61beb Move mini-macro to auxilary 2021-05-27 11:32:14 -05:00
bors
16e347f7b3 Auto merge of #7284 - camsteffen:consts-reexport, r=flip1995
Remove clippy_utils::consts re-export

changelog: none

We got a straggler.
2021-05-27 14:07:12 +00:00
Cameron Steffen
d39a11cbe1 Remove clippy_utils::consts re-export 2021-05-27 08:52:10 -05:00
bors
5cb49bcb98 Auto merge of #7283 - flip1995:release-doc, r=giraffate
Document to only push the created tag and not everything

Inspired by https://stackoverflow.com/a/5195913

changelog: none
2021-05-27 13:19:35 +00:00
flip1995
8d422881bc
Document to only push the created tag and not everything 2021-05-27 11:09:49 +02:00
bors
2fa9362448 Auto merge of #7281 - camsteffen:has-doc-fp, r=flip1995
Fix missing_docs_in_private_items false negative

changelog: Fix [`missing_docs_in_private_items`] false negative when the item has any `#[name = "value"]` attribute

Closes #7247 (decided not to use the rustc method since it calls `Session::check_name`, which is for rustc only)
2021-05-27 08:37:08 +00:00
bors
8066f836ec Auto merge of #7282 - camsteffen:lint-stmt-expr, r=flip1995
Fix allow on some statement lints

changelog: Fix `#[allow(..)]` over statements for [`needless_collect`], [`short_circuit_statement`] and [`unnecessary_operation`]

Fixes #7171
Fixes #7202
2021-05-27 08:23:21 +00:00
bors
9c4651f2ee Auto merge of #7187 - camsteffen:avoid-break-exported, r=flip1995,phansch
Add avoid_breaking_exported_api config option

changelog: Add `avoid_breaking_exported_api` config option for [`enum_variant_names`], [`large_types_passed_by_value`], [`trivially_copy_pass_by_ref`], [`unnecessary_wraps`], [`upper_case_acronyms`] and [`wrong_self_convention`].

changelog: Deprecates [`pub_enum_variant_names`] and [`wrong_pub_self_convention`] as the non-pub variants are now configurable.

changelog: Fix various false negatives for `pub` items that are not exported from the crate.

A couple changes to late passes in order to use `cx.access_levels.is_exported` rather than `item.vis.kind.is_pub`.

I'm not sure how to better document the config option or lints that are (not) affected (see comments in #6806). Suggestions are welcome. cc `@rust-lang/clippy`

I added `/clippy.toml` to use the config internally and `/tests/clippy.toml` to maintain a default config in ui tests.

Closes #6806
Closes #4504
2021-05-27 04:49:56 +00:00
Cameron Steffen
f3e77a454a Fix allow on some statement lints 2021-05-26 22:07:53 -05:00
Cameron Steffen
6eea598645 Fix config file lookup 2021-05-26 21:53:43 -05:00