Commit graph

16836 commits

Author SHA1 Message Date
bors 8354b34061 Auto merge of #111036 - RalfJung:miri, r=RalfJung
update Miri

r? `@ghost`
2023-05-01 11:13:49 +00:00
blyxyas 5749054241
globally ignore #[no_std] crates 2023-05-01 12:39:20 +02:00
yukang d4baabe902 clean up Colon from clippy 2023-05-01 16:15:17 +08:00
Ralf Jung de4bc66f94 Merge from rustc 2023-04-30 22:35:29 +02:00
John Kelly b9788fef29 Working 2023-04-30 14:34:46 +01:00
John Kelly 8db21e9a9c WIP 2023-04-30 14:14:47 +01:00
John Kelly 0fb3f3b256 WIP 2023-04-30 14:10:26 +01:00
John Kelly 1eff408ca4 WIP 2023-04-30 13:45:45 +01:00
John Kelly 478555d468 wip 2023-04-30 13:16:04 +01:00
y21 cc607fe32e don't remove dbg! in arbitrary expressions 2023-04-30 01:30:15 +02:00
Icxolu 032bc11fd4
fix diagnostic message style
Co-authored-by: Ruby Lazuli <general@patchmixolydic.com>
2023-04-29 21:11:34 +02:00
bors 7bc3da975a Auto merge of #10647 - y21:while_pop_unwrap, r=llogiq
new lint: `manual_while_let_some`

This PR implements the lint I suggested [on zulip](https://rust-lang.zulipchat.com/#narrow/stream/257328-clippy/topic/lint.20on.20while.20pop.20unwrap).
It looks for while loops like these:
```rs
let mut numbers = vec![0, 1, 2];
while !numbers.is_empty() {
  let number = numbers.pop().unwrap();
  // use `number`
}
```
and suggests replacing it with a while-let loop, like this:
```rs
let mut numbers = vec![0, 1, 2];
while let Some(number) = numbers.pop() {
  // use `number`
}
```
... which is more concise and idiomatic.

It only looks for `Vec::pop()` calls in the first statement of the loop body in an attempt to not trigger FPs (as pop might only be called conditionally).

changelog: new lint [`manual_while_let_some`]
2023-04-29 17:57:25 +00:00
y21 9613ea85c6 fix run-rustfix directive 2023-04-29 19:10:52 +02:00
y21 8d8178f931 rename lint to manual_while_let_some 2023-04-29 18:59:07 +02:00
y21 f10e39fd2b make PopStmt copy+clone 2023-04-29 18:59:07 +02:00
y21 ab9b7a5ad2 remove unnecessary reference 2023-04-29 18:59:07 +02:00
y21 1d08325293 move lint to loops, emit proper suggestion, more tests 2023-04-29 18:59:07 +02:00
y21 bcdcc34ba9 elide lifetimes, get rid of glob import 2023-04-29 18:59:06 +02:00
y21 bb58083ce5 new lint: while_pop_unwrap 2023-04-29 18:59:06 +02:00
Lukas Lueg 2ed254e29f Clarify docs for RESULT_LARGE_ERR 2023-04-29 14:18:31 +02:00
bors 3594d55439 Auto merge of #10719 - blyxyas:fix-items_after_test_mod_imported_modules, r=Alexendoo
Fix `items_after_test_module`: Ignore imported modules

Fixes #10713. It does a little bit of dark magic, but intention is what really counts.
changelog:[`items_after_test_module`]: Ignore imported modules (`mod foo;`) with no body.
2023-04-28 18:42:58 +00:00
blyxyas 395b1f5bf3
Rename items + Delete imported_module.stderr 2023-04-28 20:40:47 +02:00
blyxyas 2b5820d58b
Change module import system 2023-04-28 20:23:05 +02:00
blyxyas f37054b396
Remove useless span magic 2023-04-28 20:19:36 +02:00
Deadbeef 81a614145f uplift clippy::clone_double_ref as suspicious_double_ref_op 2023-04-28 17:24:48 +00:00
bors b7939f4d6c Auto merge of #10720 - SergenKaraoglan:personal, r=flip1995
run linkcheck in clippy ci

fixes #10711

changelog: Run [linkcheck.sh](https://github.com/rust-lang/rust/blob/master/src/tools/linkchecker/linkcheck.sh) from rustc repo in Remark.yml to check Clippy book.
2023-04-28 14:21:48 +00:00
Sergen Karaoglan d1f55e6b53 run linkcheck in Remark CI
fix new lints link

install nightly rust-docs

run linkcheck without nightly toolchain

remove nightly toolchain, add rust-docs component

Test Remark

Update basics.md

Update basics.md

Update basics.md

update workflow

add rust docs toolchain

Update remark.yml

workflow test

manual test

update book path

add linkcheck book to CI

Update lint_passes.md
2023-04-28 15:11:48 +01:00
Ralf Jung 19b3b22a27 Merge from rustc 2023-04-28 15:49:39 +02:00
Michael Goulet 83504fa763 Make clippy happy 2023-04-27 17:18:12 +00:00
blyxyas 273c898aef
Fix #10713 and move the tests to a subdir 2023-04-27 16:43:51 +02:00
Boxy 0339d4e982 rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
Icxolu 9428138562 adds lint to detect construction of unit struct using default
Using `default` to construct a unit struct increases code complexity and
adds a function call. This can be avoided by simply removing the call to
`default` and simply construct by name.
2023-04-26 21:12:59 +02:00
Maybe Waffle 95648951ea Fix uses of TraitRef::identity in clippy and rustdoc 2023-04-26 13:48:56 +00:00
Ralf Jung 92645b0a38 Merge from rustc 2023-04-26 09:51:54 +02:00
bors 990bbdc2be Auto merge of #10656 - Centri3:master, r=xFrednet
Add configuration for `semicolon_block` lints

Does exactly what it says on the tin, suggests moving a block's final semicolon inside if it's multiline and outside if it's singleline.

I don't really like how this is implemented so I'm not too sure if this is ready yet. Alas, it might be ok.

---

fixes #10654

changelog: Enhancement: [`semicolon_inside_block`]: Added `semicolon-inside-block-ignore-singleline` as a new config value.
[#10656](https://github.com/rust-lang/rust-clippy/pull/10656)
changelog: Enhancement: [`semicolon_outside_block`]: Added `semicolon-outside-block-ignore-multiline` as a new config value.
[#10656](https://github.com/rust-lang/rust-clippy/pull/10656)
<!-- changelog_checked -->
2023-04-25 20:12:00 +00:00
Centri3 8c8cf40707 Update lint_configuration.md 2023-04-25 14:44:56 -05:00
Matthias Krüger 331c5471d7 Rollup merge of #110556 - kylematsuda:earlybinder-explicit-item-bounds, r=compiler-errors
Switch to `EarlyBinder` for `explicit_item_bounds`

Part of the work to finish https://github.com/rust-lang/rust/issues/105779.

This PR adds `EarlyBinder` to the return type of the `explicit_item_bounds` query and removes `bound_explicit_item_bounds`.

r? `@compiler-errors` (hope it's okay to request you, since you reviewed #110299 and #110498 😃)
2023-04-25 21:06:32 +02:00
bors a7335cbf90 Auto merge of #10712 - blyxyas:fix-fixflag_implies_all_targets, r=llogiq
Document that `cargo clippy --fix` implies `--all-targets`

In [`cargo fix`'s documentation](https://doc.rust-lang.org/cargo/commands/cargo-fix.html) they indicate that `fix` implies `--all-targets` if no target is supplied. As Clippy uses Cargo under the hood, this also applies to Clippy, but we didn't document that behaviour.

This PR changes that

Fixes #10690
changelog: Add to documentation that `--fix` implies `--all-targets`
2023-04-25 17:11:52 +00:00
bors 19465c9a36 Auto merge of #10715 - xFrednet:changelog-1-69, r=llogiq
Catching, stray, commas, (I'll, never, learn, to, use, them, correctly)  😅

Roses are red,
Violets are blue,
Fixing commas,
Is the completed todo.

(It's always impressive, that the poems are getting worse)

---

Follow-up from: https://github.com/rust-lang/rust-clippy/pull/10668

changelog: none
2023-04-25 16:39:57 +00:00
Maybe Waffle 9cf96429a7 Use ty::TraitRef::new in clippy 2023-04-25 16:31:51 +00:00
Centri3 e3ee10d428 use //@ for commands in tests 2023-04-25 11:23:02 -05:00
Centri3 aa6c27a74e change names to not be implicitly negative 2023-04-25 11:14:52 -05:00
xFrednet 637d10b292
Catching, stray, commas, (I'll, never, learn, to, use, them, correctly) 😅 2023-04-25 17:33:27 +02:00
bors abd2c1e8e4 Auto merge of #10665 - Centri3:string_lit_as_bytes_changes, r=giraffate
Don't apply `string_lit_as_bytes` if in macro expansion

The following code will emit a warning on both w! and h!, despite there being nothing the user (or library author) could do about it:
```rust
#![warn(clippy::string_lit_as_bytes)]

use windows::w;
use windows::h;

fn main() {
    let _w = w!("example");
    let _h = h!("example");
}
```
This is because windows-rs will create a binding `const INPUT: &[u8] = $s.as_bytes()`, and changing this to b"$s" is, well, suboptimal. I don't know enough about Rust to know if this is something that can be detected though if it can be I'm happy with closing this in favor of implementing that.

I'm not sure whether this is how it should be done though, as this simply tells clippy to not invoke this even if it's applicable (this also affects the other string lints, but didn't cause any tests to fail).

changelog: [`string_lit_as_bytes`]: Don't lint if in external macro
2023-04-25 13:02:52 +00:00
Centri3 14a6fa4a34 use in_external_macro 2023-04-25 05:06:45 -05:00
Centri3 1ac30d3c86 make cargo test pass 2023-04-25 05:06:11 -05:00
Centri3 8efe9ff9fb run cargo dev fmt 2023-04-25 05:06:11 -05:00
Centri3 acfb2c45ba don't check if from macro invocation 2023-04-25 05:06:11 -05:00
blyxyas 4a76b6f04f
Add the warning to all documentation. 2023-04-25 02:05:32 +02:00
bors 5514d9f444 Auto merge of #110718 - flip1995:clippyup, r=Manishearth
Update Clippy

r? `@Manishearth`

A few days late, I was on a business trip, sorry.
2023-04-24 21:25:56 +00:00