]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoAuto merge of #7477 - F3real:needless_continue, r=flip1995
bors [Mon, 26 Jul 2021 11:52:55 +0000 (11:52 +0000)]
Auto merge of #7477 - F3real:needless_continue, r=flip1995

Enhance needless continue to detect loop {continue;}

Fixes #7417

changelog: Report [`needless_continue`] in `loop { continue; }` case

2 years agoAuto merge of #7484 - camsteffen:author, r=flip1995
bors [Mon, 26 Jul 2021 11:41:46 +0000 (11:41 +0000)]
Auto merge of #7484 - camsteffen:author, r=flip1995

Some `clippy::author` improvements

changelog: none

* Use `Debug` instead of re-implementing it for some things
* Fix block trailing expression handing
* Don't double print on stmt/expr with `#[clippy::author]` attribute

2 years agoauthor: check block.expr: None
Cameron Steffen [Sun, 25 Jul 2021 21:35:35 +0000 (16:35 -0500)]
author: check block.expr: None

2 years agoAuto merge of #7482 - xFrednet:7306-document-repeat-once-fp, r=giraffate
bors [Sat, 24 Jul 2021 14:15:32 +0000 (14:15 +0000)]
Auto merge of #7482 - xFrednet:7306-document-repeat-once-fp, r=giraffate

Documented constant expression evaluation for `repeat_once`

Documents the fact that the `repeat_once` lint evaluates constant expressions

---

closes: #7306

changelog: none
(I don't think it's worth a change log entry, as nothing has really changed)

r? `@giraffate` as you've implemented the lint and were part of the discussion in the issue :upside_down_face:

2 years agoclippy::author improvements
Cameron Steffen [Fri, 23 Jul 2021 21:02:09 +0000 (16:02 -0500)]
clippy::author improvements

2 years agoClean up unnecessary unwraps
F3real [Fri, 23 Jul 2021 15:30:27 +0000 (17:30 +0200)]
Clean up unnecessary unwraps

2 years agoDocumented constant expression evaluation for `repeat_once`
xFrednet [Fri, 23 Jul 2021 15:02:45 +0000 (17:02 +0200)]
Documented constant expression evaluation for `repeat_once`

2 years agoLint on continue expression without semi-colon
F3real [Thu, 22 Jul 2021 20:21:34 +0000 (22:21 +0200)]
Lint on continue expression without semi-colon

2 years agoEmit needless_continue warning if loop ends on continue
F3real [Wed, 21 Jul 2021 21:15:29 +0000 (23:15 +0200)]
Emit needless_continue warning if loop ends on continue

2 years agoEnhance needless continue to detect loop {continue;}
F3real [Tue, 20 Jul 2021 15:29:03 +0000 (17:29 +0200)]
Enhance needless continue to detect loop {continue;}

2 years agoAuto merge of #7221 - th1000s:keyword_, r=giraffate
bors [Mon, 19 Jul 2021 14:18:59 +0000 (14:18 +0000)]
Auto merge of #7221 - th1000s:keyword_, r=giraffate

similar_names: No longer suggest inserting or appending an underscore

changelog: [`similar_names`] lint no longer suggests to insert or add an underscore to "fix" too similar names

2 years agoAuto merge of #7476 - flip1995:rustup, r=flip1995
bors [Mon, 19 Jul 2021 09:49:57 +0000 (09:49 +0000)]
Auto merge of #7476 - flip1995:rustup, r=flip1995

Rustup

r? `@ghost`

Out of cycle sync for 2 ICE fixes #7470 #7471 #7473

changelog: none

2 years agoBump nightly version -> 2021-07-19
flip1995 [Mon, 19 Jul 2021 09:49:03 +0000 (11:49 +0200)]
Bump nightly version -> 2021-07-19

2 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Mon, 19 Jul 2021 09:38:40 +0000 (11:38 +0200)]
Merge remote-tracking branch 'upstream/master' into rustup

2 years agoAuto merge of #7470 - DevinR528:fix-ice7447, r=flip1995
bors [Mon, 19 Jul 2021 09:22:34 +0000 (09:22 +0000)]
Auto merge of #7470 - DevinR528:fix-ice7447, r=flip1995

Add check if ty has_escaping_bound_vars in zero_sized_map_values lint

Fixes: #7447
changelog: fix ICE in [`zero_sized_map_values`]

2 years agoAuto merge of #7403 - Anthuang:redundant-method-names, r=Manishearth
bors [Mon, 19 Jul 2021 06:49:51 +0000 (06:49 +0000)]
Auto merge of #7403 - Anthuang:redundant-method-names, r=Manishearth

New lint: [`self_named_constructor`]

Adds the `self_named_constructor` lint for detecting when an implemented method has the same name as the type it is implemented for.

changelog: [`self_named_constructor`]

closes: #7142

2 years agoRun bless
Anthony Huang [Mon, 19 Jul 2021 05:21:06 +0000 (01:21 -0400)]
Run bless

2 years agoAuto merge of #7474 - camsteffen:binop, r=Manishearth
bors [Sun, 18 Jul 2021 15:52:49 +0000 (15:52 +0000)]
Auto merge of #7474 - camsteffen:binop, r=Manishearth

Use lang items for BinOp lints

changelog: none

3 years agoAuto merge of #7473 - Jarcho:ice_7340, r=Manishearth
bors [Sun, 18 Jul 2021 03:32:31 +0000 (03:32 +0000)]
Auto merge of #7473 - Jarcho:ice_7340, r=Manishearth

Fix ICE in `is_integer_const`

fixes: #7340
changelog: Fix ICE in `modulo_one` in const contexts

3 years agoFactor BinOp utils
Cameron Steffen [Fri, 16 Jul 2021 19:41:19 +0000 (14:41 -0500)]
Factor BinOp utils

3 years agoUse From to convert BinOpKind
Cameron Steffen [Mon, 28 Jun 2021 19:05:48 +0000 (14:05 -0500)]
Use From to convert BinOpKind

3 years agoFix ICE in `is_integer_const` when the expression is inside an `AnonConst` body
Jason Newcomb [Sat, 17 Jul 2021 23:01:19 +0000 (19:01 -0400)]
Fix ICE in `is_integer_const` when the expression is inside an `AnonConst` body

3 years agoAuto merge of #7471 - flip1995:ice-7410, r=giraffate
bors [Fri, 16 Jul 2021 14:26:08 +0000 (14:26 +0000)]
Auto merge of #7471 - flip1995:ice-7410, r=giraffate

Fix ICE in redundant_pattern_matching

Fixes #7410

changelog: Fix ICE in `redundant_pattern_matching` in `no_std` crates.

3 years agoAuto merge of #87140 - camsteffen:pat-slice-refs, r=oli-obk
bors [Fri, 16 Jul 2021 13:35:48 +0000 (13:35 +0000)]
Auto merge of #87140 - camsteffen:pat-slice-refs, r=oli-obk

Remove refs from Pat slices

Changes `PatKind::Or(&'hir [&'hir Pat<'hir>])` to `PatKind::Or(&'hir [Pat<'hir>])` and others. This is more consistent with `ExprKind`, saves a little memory, and is a little easier to use.

3 years agoFix ICE in redundant_pattern_matching
flip1995 [Fri, 16 Jul 2021 08:45:28 +0000 (10:45 +0200)]
Fix ICE in redundant_pattern_matching

3 years agoRollup merge of #87069 - sexxi-goose:copy_ref_always, r=nikomatsakis
Guillaume Gomez [Fri, 16 Jul 2021 08:08:05 +0000 (10:08 +0200)]
Rollup merge of #87069 - sexxi-goose:copy_ref_always, r=nikomatsakis

ExprUseVisitor: Treat ByValue use of Copy types as ImmBorrow

r? ```@nikomatsakis```

3 years agoAdd check if ty has_escaping_bound_vars in zero_sized_map_values lint
Devin Ragotzy [Thu, 15 Jul 2021 22:35:43 +0000 (18:35 -0400)]
Add check if ty has_escaping_bound_vars in zero_sized_map_values lint

3 years agoAuto merge of #7460 - camsteffen:run-from-source, r=Manishearth
bors [Thu, 15 Jul 2021 21:53:17 +0000 (21:53 +0000)]
Auto merge of #7460 - camsteffen:run-from-source, r=Manishearth

Add instructions to run from source

changelog: none

We often get messages on Zulip asking how to install and run Clippy from source. This adds instructions to the readme. I also added a note explaining that `cargo install --path . --force` is bad, which I just decided after some investigating. I use macOS. It would be nice to get some tests on other platforms to see if this is correct.

3 years agoRemove refs from pat slices
Cameron Steffen [Wed, 14 Jul 2021 21:17:04 +0000 (16:17 -0500)]
Remove refs from pat slices

3 years agoAdd instructions to run from source
Cameron Steffen [Tue, 13 Jul 2021 15:09:24 +0000 (10:09 -0500)]
Add instructions to run from source

3 years agoMerge commit '54a20a02ecd0e1352a871aa0990bcc8b8b03173e' into clippyup
flip1995 [Thu, 15 Jul 2021 08:44:10 +0000 (10:44 +0200)]
Merge commit '54a20a02ecd0e1352a871aa0990bcc8b8b03173e' into clippyup

3 years agoAuto merge of #7468 - flip1995:rustup, r=flip1995
bors [Thu, 15 Jul 2021 08:37:36 +0000 (08:37 +0000)]
Auto merge of #7468 - flip1995:rustup, r=flip1995

Rustup

r? `@ghost`

changelog: none

3 years agoBump nightly version -> 2021-07-15
flip1995 [Thu, 15 Jul 2021 08:32:21 +0000 (10:32 +0200)]
Bump nightly version -> 2021-07-15

3 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Thu, 15 Jul 2021 08:21:01 +0000 (10:21 +0200)]
Merge remote-tracking branch 'upstream/master' into rustup

3 years agoAuto merge of #7308 - lengyijun:redundant_allocation_arc, r=xFrednet,flip1995
bors [Thu, 15 Jul 2021 07:20:37 +0000 (07:20 +0000)]
Auto merge of #7308 - lengyijun:redundant_allocation_arc, r=xFrednet,flip1995

add Arc to `redundant_allocation`

 fixes #7303
changelog:  add Arc to `redundant_allocation`

3 years agoredundant_allocation: add Arc; some refractoring.
lyj [Wed, 2 Jun 2021 05:41:52 +0000 (13:41 +0800)]
redundant_allocation: add Arc; some refractoring.

3 years agoAuto merge of #7462 - xFrednet:7369-branches-sharing-code-else-expr-fp, r=camsteffen
bors [Wed, 14 Jul 2021 20:29:56 +0000 (20:29 +0000)]
Auto merge of #7462 - xFrednet:7369-branches-sharing-code-else-expr-fp, r=camsteffen

FP fix and documentation for `branches_sharing_code` lint

Closes rust-lang/rust-clippy#7369

Related rust-lang/rust-clippy#7452 I'm still thinking about the best way to fix this. I could simply add another visitor to ensure that the moved expressions don't modify values being used in the condition, but I'm not totally happy with this due to the complexity. I therefore only documented it for now

changelog: [`branches_sharing_code`] fixed false positive where block expressions would sometimes be ignored.

3 years agoFixed `branches_sharing_code` FP with block expressions in else
xFrednet [Tue, 13 Jul 2021 21:27:19 +0000 (23:27 +0200)]
Fixed `branches_sharing_code` FP with block expressions in else

And added `branches_sharing_code` PF note to lint doc for `rust-clippy#7452`

3 years agoAuto merge of #7437 - ebobrow:redundant-closure-move, r=flip1995
bors [Wed, 14 Jul 2021 15:15:28 +0000 (15:15 +0000)]
Auto merge of #7437 - ebobrow:redundant-closure-move, r=flip1995

suggest `&mut` for redundant FnMut closures

fixes #6903

changelog: suggest `&mut` for redundant FnMut closures

3 years agosuggest `&mut` for redundant FnMut closures
Elliot Bobrow [Sat, 3 Jul 2021 03:25:55 +0000 (20:25 -0700)]
suggest `&mut` for redundant FnMut closures

3 years agoAuto merge of #7346 - lengyijun:redundant_clone_5707, r=oli-obk
bors [Wed, 14 Jul 2021 10:10:14 +0000 (10:10 +0000)]
Auto merge of #7346 - lengyijun:redundant_clone_5707, r=oli-obk

fix 5707

changelog: ``[`redundant_clone`]``, fix #5707

# Root problem of #5707 :
```
&2:&mut HashMap = &mut _4;
&3:&str = & _5;
_1 = HashMap::insert(move _2,move _3, _);
```

generate PossibleBorrower(_2,_1) and PossibleBorrower(_3,_1).

However, it misses PossibleBorrower(_3,_2).

# My solution to #5707 :

When meet a function call, we should:
1. build PossibleBorrower between borrow parameters and return value (currently)
2. build PossibleBorrower between immutable borrow parameters and mutable borrow parameters (*add*)
3. build PossibleBorrower inside mutable borrow parameters (*add*)

For example:
```
_2: &mut _22;
_3: &mut _;
_4: & _;
_5: & _;
_1 = call(move _2, move _3, move _4, move _5);
```
we need to build
1. return value with parameter(current implementataion)
 PossibleBorrower(_2,_1)
 PossibleBorrower(_3,_1)
 PossibleBorrower(_4,_1)
 PossibleBorrower(_5,_1)

2. between mutable borrow and immutable borrow
PossibleBorrower(_4,_2)
PossibleBorrower(_5,_2)
PossibleBorrower(_4,_3)
PossibleBorrower(_5,_3)

3. between mutable borrow and mutable borrow
PossibleBorrower(_3,_2)
PossibleBorrower(_2,_3)

  But that's not enough.
 Modification to _2 actually apply to _22.
  So I write a `PossibleBorrowed` visitor, which tracks (borrower => possible borrowed) relation.
  For example (_2 => _22).
  However, a lot of problems exist here.

## Known Problems:
  1. not sure all `&mut`'s origin are collected.
  I'm not sure how to deal with `&mut` when meet a function call, so I didn't do it currently.
  Also, my implement is not flow sensitive, so it's not accurate.

```
foo(_2:&mut _, _3: &_)
```
This pr doesn't count _3 as origin of _2.

 2. introduce false negative
`foo(_2, _3)` will  emit PossibleBorrower(_3,_2) in this pr, but _3 and _2 may not have relation.
Clippy may feel that _3 is still in use because of _2, but actually, _3 is on longer needed and can be moved.

## Insight
  The key problem is determine where every `&mut` come from accurately.
  I think Polonius is an elegant solution to it. Polonius is flow sensitive and accurate.
  But I'm uncertain about whether we can import Polonius in rust-clippy currently.
  This pr actually is part of Polonius' functionality, I think.

# TODO
1. `cargo test` can't pass yet due to similar variable name

3 years agoExprUseVisitor::Delegate consume only when moving
Aman Arora [Wed, 14 Jul 2021 06:21:08 +0000 (02:21 -0400)]
ExprUseVisitor::Delegate consume only when moving

3 years agorename possible_borrowed to possible_origin; pass dogfood
lyj [Wed, 14 Jul 2021 03:29:39 +0000 (11:29 +0800)]
rename possible_borrowed to possible_origin; pass dogfood

3 years agofix 5707
lyj [Fri, 11 Jun 2021 12:57:11 +0000 (20:57 +0800)]
fix 5707

3 years agoNo longer suggest inserting or appending an underscore
Thomas Otto [Thu, 13 May 2021 20:53:31 +0000 (22:53 +0200)]
No longer suggest inserting or appending an underscore

changelog: [`similar_names`] lint no longer suggests to insert or add an underscore
to "fix" too similar names

3 years agoAuto merge of #86827 - camsteffen:hash-lint-resolved, r=oli-obk
bors [Tue, 13 Jul 2021 15:06:10 +0000 (15:06 +0000)]
Auto merge of #86827 - camsteffen:hash-lint-resolved, r=oli-obk

Fix internal `default_hash_types` lint to use resolved path

I run into false positives now and then (mostly in Clippy) when I want to name some util after HashMap.

3 years agoAuto merge of #7446 - Y-Nak:fix-7445, r=xFrednet,flip1995
bors [Tue, 13 Jul 2021 14:31:02 +0000 (14:31 +0000)]
Auto merge of #7446 - Y-Nak:fix-7445, r=xFrednet,flip1995

`default_numeric_fallback`: Fix FP with floating literal

Fix #7445

changelog: `default_numeric_fallback`: Fix FP with floating literal

3 years ago`default_numeric_fallback`: Add rustfix tests
Yoshitomo Nakanishi [Tue, 13 Jul 2021 13:57:47 +0000 (22:57 +0900)]
`default_numeric_fallback`: Add rustfix tests

3 years agoAuto merge of #7442 - camsteffen:format-args, r=xFrednet
bors [Tue, 13 Jul 2021 13:58:38 +0000 (13:58 +0000)]
Auto merge of #7442 - camsteffen:format-args, r=xFrednet

Refactor `format_args!` expansion parsing

Introduces `FormatExpn::parse` and `FormatArgsExpn::parse`. Motivated by rust-lang/rust#83302, so I only have to change Clippy in one place. Fixed an FP along the way.

I also allowed `needless_bool` in macros because I often want to do `if_chain! { .. then { true } else { false } }`.

changelog: Fix false positive in `useless_format` when some text is appended or prepended to a single string with some useless formatting params
changelog: Allow `needless_bool` in macros

3 years agoSplit a lint message into help
Cameron Steffen [Mon, 12 Jul 2021 01:30:19 +0000 (20:30 -0500)]
Split a lint message into help

3 years agoReduce redundant code
Cameron Steffen [Mon, 12 Jul 2021 01:21:21 +0000 (20:21 -0500)]
Reduce redundant code

3 years agoRefactor format macro parsing
Cameron Steffen [Tue, 6 Jul 2021 16:51:15 +0000 (11:51 -0500)]
Refactor format macro parsing

3 years agoFix useless_format false positive
Cameron Steffen [Sun, 4 Jul 2021 21:34:22 +0000 (16:34 -0500)]
Fix useless_format false positive

3 years agoAllow needless_bool in macro
Cameron Steffen [Wed, 9 Jun 2021 19:44:42 +0000 (14:44 -0500)]
Allow needless_bool in macro

3 years agoFix `NumericLiteral::format` that may produce a invalid literal
Yoshitomo Nakanishi [Tue, 13 Jul 2021 13:56:41 +0000 (22:56 +0900)]
Fix `NumericLiteral::format` that may produce a invalid literal

3 years agoAuto merge of #7458 - flip1995:unused_unit-doc, r=giraffate
bors [Tue, 13 Jul 2021 13:43:12 +0000 (13:43 +0000)]
Auto merge of #7458 - flip1995:unused_unit-doc, r=giraffate

Add fixed example to unused_unit documentation

changelog: none

(don't think this is worth a changelog mention)

3 years agoAdd fixed example to unused_unit documentation
flip1995 [Tue, 13 Jul 2021 08:54:29 +0000 (10:54 +0200)]
Add fixed example to unused_unit documentation

3 years agorustc_span: Revert addition of `proc_macro` field to `ExpnKind::Macro`
Vadim Petrochenkov [Sat, 10 Jul 2021 19:14:52 +0000 (22:14 +0300)]
rustc_span: Revert addition of `proc_macro` field to `ExpnKind::Macro`

The flag has a vague meaning and is used for a single diagnostic change that is low benefit and appears only under `-Z macro_backtrace`.

3 years agoclippy: allow default_hash_types on bootstrap
Cameron Steffen [Thu, 8 Jul 2021 17:59:16 +0000 (12:59 -0500)]
clippy: allow default_hash_types on bootstrap

3 years agoAuto merge of #7449 - flip1995:remove-lints_enabled, r=camsteffen
bors [Fri, 9 Jul 2021 14:00:52 +0000 (14:00 +0000)]
Auto merge of #7449 - flip1995:remove-lints_enabled, r=camsteffen

Remove lints_enabled

r? `@camsteffen`

cc https://github.com/rust-lang/rust-clippy/pull/7448#issuecomment-876497862

I haven't added a variant with `last_node_with_lint_attrs` yet, since I didn't see a usecase for this. Also this field is not documented, so I'm wondering how it behaves with command line lints and so on.

changelog: none

3 years agoRename `is_allowed` -> `is_lint_allowed`
flip1995 [Fri, 9 Jul 2021 13:06:12 +0000 (15:06 +0200)]
Rename `is_allowed` -> `is_lint_allowed`

3 years agoRemove lints_enabled function
flip1995 [Fri, 9 Jul 2021 13:00:24 +0000 (15:00 +0200)]
Remove lints_enabled function

This function was redundant with the is_allowed function. Now is_allowed
is used everywhere lints_enabled was used before.

3 years ago`default_numeric_fallback`: Add more tests for floating literal
Yoshitomo Nakanishi [Fri, 9 Jul 2021 05:51:16 +0000 (14:51 +0900)]
`default_numeric_fallback`: Add more tests for floating literal

3 years agoAuto merge of #7448 - flip1995:run_lints-rename, r=llogiq
bors [Fri, 9 Jul 2021 06:39:56 +0000 (06:39 +0000)]
Auto merge of #7448 - flip1995:run_lints-rename, r=llogiq

Rename run_lints -> lints_enabled

Just a quick rename of a utilities function. `run_lints` kinda suggested that the lints were run by this function. But the only thing this function does is to check if the lints are enabled in the context of the `hir_id`

changelog: none

3 years agoRework SESSION_GLOBALS API to prevent overwriting it
Guillaume Gomez [Wed, 5 May 2021 19:31:25 +0000 (21:31 +0200)]
Rework SESSION_GLOBALS API to prevent overwriting it

3 years agoRename run_lints -> lints_enabled
flip1995 [Thu, 8 Jul 2021 13:45:19 +0000 (15:45 +0200)]
Rename run_lints -> lints_enabled

3 years agodefault_numeric_fallback: Fix FP with floating literal
Yoshitomo Nakanishi [Thu, 8 Jul 2021 02:37:12 +0000 (11:37 +0900)]
default_numeric_fallback: Fix FP with floating literal

3 years agoAuto merge of #86920 - JohnTitor:rollup-buvzpkr, r=JohnTitor
bors [Wed, 7 Jul 2021 03:31:23 +0000 (03:31 +0000)]
Auto merge of #86920 - JohnTitor:rollup-buvzpkr, r=JohnTitor

Rollup of 8 pull requests

Successful merges:

 - #80918 (Add Integer::log variants)
 - #86717 (Rename some Rust 2021 lints to better names )
 - #86819 (Clean up rustdoc IDs)
 - #86880 (Test ManuallyDrop::clone_from.)
 - #86906 (Replace deprecated compare_and_swap and fix typo in core::sync::atomic::{fence, compiler_fence} docs)
 - #86907 (Migrate `cpu-usage-over-time.py` to Python 3)
 - #86916 (rewrote documentation for thread::yield_now())
 - #86919 (Update books)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoMake type_implements_trait not a query
Aman Arora [Tue, 6 Jul 2021 09:38:15 +0000 (05:38 -0400)]
Make type_implements_trait not a query

3 years agoAdd s to non_fmt_panic
Ryan Levick [Tue, 29 Jun 2021 18:33:31 +0000 (20:33 +0200)]
Add s to non_fmt_panic

3 years agoAuto merge of #7439 - iobtl:assert_msg_panic_fp, r=flip1995
bors [Tue, 6 Jul 2021 08:22:57 +0000 (08:22 +0000)]
Auto merge of #7439 - iobtl:assert_msg_panic_fp, r=flip1995

Fix false-positive `assert` in `panic`

This PR fixes a false-positive in `clippy::panic` when using the `assert` macro with its optional message parameter.

Fixes: #7433
changelog: `panic_unimplemented.rs`: added condition to exclude `assert` macro, similar to `debug_assert`
changelog: `panicking_macros.rs`: relevant tests to check for `assert` usage.

3 years agofix false positive (panic message) with assert macro using message parameter
iobtl [Tue, 6 Jul 2021 07:14:53 +0000 (15:14 +0800)]
fix false positive (panic message) with assert macro using message parameter

3 years agoAdd redundant_method_names lint
Anthony Huang [Fri, 25 Jun 2021 20:34:45 +0000 (16:34 -0400)]
Add redundant_method_names lint

3 years agoAuto merge of #7243 - mgacek8:issue7145_strlen_on_c_strings, r=giraffate
bors [Mon, 5 Jul 2021 13:12:43 +0000 (13:12 +0000)]
Auto merge of #7243 - mgacek8:issue7145_strlen_on_c_strings, r=giraffate

Add new lint: `strlen_on_c_strings`

~~This is WIP, linting in case of `CString` has been added, but for `CStr`, its diagnostic item needs to be available for clippy.
[PR that adds diagnostic item for CStr on rust repo](https://github.com/rust-lang/rust/pull/85439).~~
Ready for the review. Please take a look.
fixes #7145
changelog: Add new lint: `strlen_on_c_strings`, that lints on `libc::strlen(some_cstring.as_ptr())`

3 years agoAdd new lint: strlen_on_c_strings
Mateusz Gacek [Tue, 18 May 2021 13:19:56 +0000 (15:19 +0200)]
Add new lint: strlen_on_c_strings

3 years agorevert broken formatting
Niko Matsakis [Sun, 4 Jul 2021 16:50:41 +0000 (12:50 -0400)]
revert broken formatting

3 years agoAuto merge of #7431 - DevinR528:fix-macro-brace, r=llogiq
bors [Sun, 4 Jul 2021 16:47:11 +0000 (16:47 +0000)]
Auto merge of #7431 - DevinR528:fix-macro-brace, r=llogiq

Fix emitting in nested (proc_)macros for nonstandard_macro_braces lint

fixes #7422

changelog: fixes false positives in [`nonstandard_macro_braces`]

3 years agoallow inference vars in type_implements_trait
Niko Matsakis [Sun, 4 Jul 2021 15:26:32 +0000 (11:26 -0400)]
allow inference vars in  type_implements_trait

3 years agoFix emitting in nested (proc_)macros for nonstandard_macro_braces lint
Devin Ragotzy [Sun, 4 Jul 2021 11:06:23 +0000 (07:06 -0400)]
Fix emitting in nested (proc_)macros for nonstandard_macro_braces lint

3 years agoAuto merge of #7428 - camsteffen:use-self-ice, r=flip1995
bors [Sat, 3 Jul 2021 19:09:05 +0000 (19:09 +0000)]
Auto merge of #7428 - camsteffen:use-self-ice, r=flip1995

Fix use_self ICE

changelog: Fix ICE #7423

r? `@flip1995`

3 years agoFix use_self ICE
Cameron Steffen [Sat, 3 Jul 2021 17:40:50 +0000 (12:40 -0500)]
Fix use_self ICE

3 years agoAuto merge of #7426 - ebobrow:doc-markdown-fp, r=llogiq
bors [Sat, 3 Jul 2021 16:53:21 +0000 (16:53 +0000)]
Auto merge of #7426 - ebobrow:doc-markdown-fp, r=llogiq

fix doc_markdown false positive

fixes #7421

changelog: don't lint unbalanced tick marks in code blocks

3 years agofix doc_markdown false positive
Elliot Bobrow [Sat, 3 Jul 2021 16:34:10 +0000 (09:34 -0700)]
fix doc_markdown false positive

3 years agoAuto merge of #7316 - lengyijun:rc_mutex, r=llogiq
bors [Sat, 3 Jul 2021 10:26:03 +0000 (10:26 +0000)]
Auto merge of #7316 - lengyijun:rc_mutex, r=llogiq

Add new lint: `rc_mutex`

changelog: Add new lint `rc_mutex`.

It lints on `Rc<Mutex<T>>`.

`Rc<Mutex<T>>` should be corrected to `Rc<RefCell<T>>`

3 years agoAuto merge of #7424 - dtolnay-contrib:macrobraces, r=llogiq
bors [Sat, 3 Jul 2021 10:14:01 +0000 (10:14 +0000)]
Auto merge of #7424 - dtolnay-contrib:macrobraces, r=llogiq

Downgrade nonstandard_macro_braces to nursery

Due to the large number of crates impacted by #7422, I don't think this lint can be enabled by default right now until the false positive is fixed.

---

changelog: remove [`nonstandard_macro_braces`] from default set of enabled lints

3 years agoDowngrade nonstandard_macro_braces to nursery
David Tolnay [Sat, 3 Jul 2021 05:14:32 +0000 (22:14 -0700)]
Downgrade nonstandard_macro_braces to nursery

3 years agorc_mutex: known problems
lyj [Fri, 2 Jul 2021 14:10:13 +0000 (22:10 +0800)]
rc_mutex: known problems

3 years agoAuto merge of #86782 - flip1995:clippyup, r=Manishearth
bors [Fri, 2 Jul 2021 02:56:45 +0000 (02:56 +0000)]
Auto merge of #86782 - flip1995:clippyup, r=Manishearth

Update Clippy

Biweekly Clippy Update

r? `@Manishearth`

3 years agoMerge commit '61eb38aeda6cb54b93b872bf503d70084c4d621c' into clippyup
flip1995 [Thu, 1 Jul 2021 16:17:38 +0000 (18:17 +0200)]
Merge commit '61eb38aeda6cb54b93b872bf503d70084c4d621c' into clippyup

3 years agoAuto merge of #7418 - flip1995:rustup, r=flip1995
bors [Thu, 1 Jul 2021 15:43:14 +0000 (15:43 +0000)]
Auto merge of #7418 - flip1995:rustup, r=flip1995

Rustup

r? `@ghost`

changelog: none

3 years agoBump nightly version -> 2021-07-01
flip1995 [Thu, 1 Jul 2021 15:41:34 +0000 (17:41 +0200)]
Bump nightly version -> 2021-07-01

3 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Thu, 1 Jul 2021 15:17:19 +0000 (17:17 +0200)]
Merge remote-tracking branch 'upstream/master' into rustup

3 years agoAuto merge of #7407 - m-ou-se:doc-hidden-variants, r=flip1995
bors [Thu, 1 Jul 2021 15:02:21 +0000 (15:02 +0000)]
Auto merge of #7407 - m-ou-se:doc-hidden-variants, r=flip1995

Don't suggest doc(hidden) or unstable variants in wildcard lint

Clippy's wildcard lint would suggest doc(hidden) and unstable variants for non_exhaustive enums, even though those aren't part of the public interface (yet) and should only be matched on using a `_`, just like potential future additions to the enum. There was already some logic to exclude a *single* doc(hidden) variant. This extends that to all hidden variants, and also hides `#[unstable]` variants.

See https://github.com/rust-lang/rust/pull/85746#issuecomment-868886893

This PR includes https://github.com/rust-lang/rust-clippy/pull/7406 as the first commit.

Here's the diff that this PR adds on top of that PR: https://github.com/m-ou-se/rust-clippy/compare/std-errorkind...m-ou-se:doc-hidden-variants

---

*Please write a short comment explaining your change (or "none" for internal only changes)*

changelog: No longer suggest unstable and doc(hidden) variants in wildcard lint. wildcard_enum_match_arm, match_wildcard_for_single_variants

3 years agoRename all_crate_nums query to crates and remove useless wrapper
bjorn3 [Mon, 7 Jun 2021 09:03:17 +0000 (11:03 +0200)]
Rename all_crate_nums query to crates and remove useless wrapper

3 years agomatch_wildcard_for_single_variants: don't produce bad suggestion
flip1995 [Thu, 1 Jul 2021 10:35:16 +0000 (12:35 +0200)]
match_wildcard_for_single_variants: don't produce bad suggestion

This fixes a bug where match_wildcard_for_single_variants produced a
bad suggestion where besides the missing variant, one or more hidden
variants were left.

This also adds tests to the ui-tests match_wildcard_for_single_variants
and wildcard_enum_match_arm to make sure that the correct suggestion is
produced.

3 years agoSimplify wildcard_enum_match_arm test
flip1995 [Thu, 1 Jul 2021 09:47:56 +0000 (11:47 +0200)]
Simplify wildcard_enum_match_arm test

3 years agoAuto merge of #7400 - popzxc:restrict-locales, r=Manishearth
bors [Wed, 30 Jun 2021 18:14:16 +0000 (18:14 +0000)]
Auto merge of #7400 - popzxc:restrict-locales, r=Manishearth

New lint: `disallowed_script_idents`

This PR implements a new lint to restrict locales that can be used in the code,
as proposed in #7376.

Current concerns / unresolved questions:

- ~~Mixed usage of `script` (as a Unicode term) and `locale` (as something that is easier to understand for the broad audience). I'm not sure whether these terms are fully interchangeable and whether in the current form it is more confusing than helpful.~~ `script` is now used everywhere.
- ~~Having to mostly copy-paste `AllowedScript`. Probably it's not a big problem, as the list of scripts is standardized and is unlikely to change, and even if we'd stick to the `unicode_script::Script`, we'll still have to implement custom deserialization, and I don't think that it will be shorter in terms of the amount of LoC.~~ `unicode::Script` is used together with a filtering deserialize function.
- Should we stick to the list of "recommended scripts" from [UAX #31](http://www.unicode.org/reports/tr31/#Table_Recommended_Scripts) in the configuration?

*Please write a short comment explaining your change (or "none" for internal only changes)*

changelog: ``[`disallowed_script_idents`]``

r? `@Manishearth`

3 years agoImplement 'disallowed_script_idents' lint
Igor Aleksanov [Wed, 30 Jun 2021 16:06:33 +0000 (19:06 +0300)]
Implement 'disallowed_script_idents' lint

3 years agoAuto merge of #7390 - popzxc:issue-7331, r=flip1995
bors [Wed, 30 Jun 2021 15:12:55 +0000 (15:12 +0000)]
Auto merge of #7390 - popzxc:issue-7331, r=flip1995

Improve lint message for match-same-arms lint

fixes #7331

Follow-up to #7377

This PR improves the lint message for `match-same-arms` lint and adds `todo!(..)`  example to the lint docs.

*Please write a short comment explaining your change (or "none" for internal only changes)*

changelog: None

3 years agoAuto merge of #7411 - camsteffen:use-self-visitor, r=flip1995
bors [Tue, 29 Jun 2021 13:23:04 +0000 (13:23 +0000)]
Auto merge of #7411 - camsteffen:use-self-visitor, r=flip1995

Simplify use_self impl

changelog: none

Mainly to remove an extra visit and simplify the "in body?" logic.