]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoAuto merge of #8596 - Jaic1:unnecessary_cast, r=flip1995
bors [Wed, 6 Apr 2022 08:27:03 +0000 (08:27 +0000)]
Auto merge of #8596 - Jaic1:unnecessary_cast, r=flip1995

Fix unnecessary_cast suggestion for type aliasses

Fix #6923. The [`unnecessary_cast`] lint now will skip casting to non-primitive type.

changelog: fix lint [`unnecessary_cast `]

2 years agoAuto merge of #8588 - pitaj:fix-8348, r=flip1995
bors [Wed, 6 Apr 2022 08:13:26 +0000 (08:13 +0000)]
Auto merge of #8588 - pitaj:fix-8348, r=flip1995

`indexing_slicing` should not fire if a valid array index comes from a constant function that is evaluated at compile-time

fix #8348

changelog: [`indexing_slicing`] fewer false positives in `const` contexts and with `const` indices

2 years agoAuto merge of #8636 - flip1995:release_changelog_quick_update, r=xFrednet
bors [Tue, 5 Apr 2022 13:03:16 +0000 (13:03 +0000)]
Auto merge of #8636 - flip1995:release_changelog_quick_update, r=xFrednet

Add documentation on how to do a minimal changelog update

This ensures that the link to the Clippy version in the Rust release
blog post works correctly. The additional `(beta)` behind the previous
beta version breaks that link otherwise.

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

changelog: none

2 years agoAuto merge of #8403 - nerdypepper:fix/diagnostic-message-mispelling, r=flip1995,Manis...
bors [Tue, 5 Apr 2022 10:07:13 +0000 (10:07 +0000)]
Auto merge of #8403 - nerdypepper:fix/diagnostic-message-mispelling, r=flip1995,Manishearth

fix misspelling in diagnostic message of `bytes_nth`

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

changelog: fix misspelling in diagnostic message in ``[`bytes_nth`]``

2 years agofix mispelling in diagnostic message of bytes_nth
Akshay [Tue, 8 Feb 2022 11:21:02 +0000 (16:51 +0530)]
fix mispelling in diagnostic message of bytes_nth

2 years agoAuto merge of #8620 - Alexendoo:test-fmt-first, r=flip1995
bors [Tue, 5 Apr 2022 09:50:53 +0000 (09:50 +0000)]
Auto merge of #8620 - Alexendoo:test-fmt-first, r=flip1995

Run fmt test before compile-test/dogfood

I seem to always forget to run `cargo dev fmt` before doing a test. This lets it fail fast rather than going through the much longer compile-test/dogfood tests first

changelog: none

2 years agoAuto merge of #8607 - Alexendoo:cargo-dev-lint-dir, r=flip1995,giraffate
bors [Tue, 5 Apr 2022 09:33:38 +0000 (09:33 +0000)]
Auto merge of #8607 - Alexendoo:cargo-dev-lint-dir, r=flip1995,giraffate

Allow running `cargo dev lint` on a package directory

Allows you run the local clippy in a specified directory, e.g. allowing

```sh
# Lint a ui-cargo test
cargo dev lint tests/ui-cargo/wildcard_dependencies/fail

# Lint some other project
cargo dev lint ~/my-project
```

The `target` directory is set to a tempdir which isn't ideal for medium/large projects as it would be compiled from scratch. This is to avoid cached clippy messages where you `cargo dev lint dir`, change something in clippy, and run `cargo dev lint dir` again

changelog: Dev: `cargo dev lint` can now be run on a package directory

2 years agoAdd documentation on how to do a minimal changelog update
flip1995 [Tue, 5 Apr 2022 09:24:32 +0000 (10:24 +0100)]
Add documentation on how to do a minimal changelog update

This ensures that the link to the Clippy version in the Rust release
blog post works correctly. The additional `(beta)` behind the previous
beta version breaks that link otherwise.

2 years agoAuto merge of #8633 - xFrednet:8627-escape-mod-rs, r=Manishearth
bors [Mon, 4 Apr 2022 20:35:44 +0000 (20:35 +0000)]
Auto merge of #8633 - xFrednet:8627-escape-mod-rs, r=Manishearth

Escape `mod.rs` file mentions to avoid links in our documentation

As the title says nothing special, still a fun fix :)

Closes: #8627
changelog: none

2 years agoEscape `mod.rs` file mentions to avoid links in our documentation
xFrednet [Mon, 4 Apr 2022 19:06:53 +0000 (21:06 +0200)]
Escape `mod.rs` file mentions to avoid links in our documentation

We can read them if they want to start sponsoring us xD

2 years agoAuto merge of #8632 - Jarcho:cast_ptr_alignment, r=llogiq
bors [Mon, 4 Apr 2022 18:47:27 +0000 (18:47 +0000)]
Auto merge of #8632 - Jarcho:cast_ptr_alignment, r=llogiq

Don't lint `cast_ptr_alignment` when used for unaligned reads and writes

fixes #2881

Ideally this would trace the usage of the value rather than only looking at the parent expression, but that would require dataflow analysis. e.g.
```rust
let x = ptr as *const u16;
c.read_unaligned(x);
```

Arch specific intrinsic functions need to be checked for ones which could take an unaligned pointer. This can be another PR.

changelog: Don't lint `cast_ptr_alignment` when used for unaligned reads and writes

2 years agoDon't lint `cast_ptr_alignment` when used for unaligned reads and writes
Jason Newcomb [Mon, 4 Apr 2022 17:54:52 +0000 (13:54 -0400)]
Don't lint `cast_ptr_alignment` when used for unaligned reads and writes

2 years agoAuto merge of #8450 - Jarcho:unsafe_blocks_8449, r=giraffate
bors [Mon, 4 Apr 2022 13:07:26 +0000 (13:07 +0000)]
Auto merge of #8450 - Jarcho:unsafe_blocks_8449, r=giraffate

Rework `undocumented_unsafe_blocks`

fixes: #8264
fixes: #8449

One thing came up while working on this. Currently comments on the same line are supported like so:

```rust
/* SAFETY: reason */ unsafe {}
```

Is this worth supporting at all? Anything other than a couple of words doesn't really fit well.

edit: [zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/257328-clippy/topic/.60undocumented_unsafe_blocks.60.20same.20line.20comment)

changelog: Don't lint `undocumented_unsafe_blocks` when the unsafe block comes from a proc-macro.
changelog: Don't lint `undocumented_unsafe_blocks` when the preceding line has a safety comment and the unsafe block is a sub-expression.

2 years agoAuto merge of #8594 - FoseFx:unit_like_struct_brackets, r=giraffate
bors [Mon, 4 Apr 2022 07:28:36 +0000 (07:28 +0000)]
Auto merge of #8594 - FoseFx:unit_like_struct_brackets, r=giraffate

add `empty_structs_with_brackets`

<!-- Thank you for making Clippy better!

We're collecting our changelog from pull request descriptions.
If your PR only includes internal changes, you can just write
`changelog: none`. Otherwise, please write a short comment
explaining your change. Also, it's helpful for us that
the lint name is put into brackets `[]` and backticks `` ` ` ``,
e.g. ``[`lint_name`]``.

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 `cargo dev update_lints`
- \[ ] Added lint documentation
- \[ ] Run `cargo 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.

--

*Please write a short comment explaining your change (or "none" for internal only changes)*
-->
Closes #8591

I'm already sorry for the massive diff :sweat_smile:

changelog: New lint [`empty_structs_with_brackets`]

2 years agois_unit_like_struct -> has_brackets
Max Baumann [Mon, 4 Apr 2022 06:48:49 +0000 (08:48 +0200)]
is_unit_like_struct -> has_brackets

2 years agoRun fmt test before compile-test/dogfood
Alex Macleod [Sat, 2 Apr 2022 11:34:06 +0000 (12:34 +0100)]
Run fmt test before compile-test/dogfood

2 years agoAuto merge of #8605 - Jarcho:remove-deps, r=xFrednet
bors [Sat, 2 Apr 2022 10:42:12 +0000 (10:42 +0000)]
Auto merge of #8605 - Jarcho:remove-deps, r=xFrednet

Remove deps

This remove both `regex` and `cargo_metadata` as dependencies making `clippy_dev` compile ~3x faster (~46s -> ~16s locally). `cargo_metadata` was used to extract the `version` field from `Cargo.toml`, which is done trivially without that. `regex` was used to parse `define_clippy_lint` in `update_lints` which is now done using `rustc_lexer`. This isn't any simpler, but it compiles ~15s faster and runs ~3x faster (~2.1s -> ~0.7s locally).

The next biggest offenders to compile times are `clap` and `winapi` on windows. `clap` could be removed, but re-implementing enough is probably more work than it's worth. `winapi` is used by `opener` and `walkdir` so it's stuck there.

changelog: none

2 years agoAuto merge of #8611 - Alexendoo:module-files-relative-paths, r=llogiq
bors [Sat, 2 Apr 2022 07:06:03 +0000 (07:06 +0000)]
Auto merge of #8611 - Alexendoo:module-files-relative-paths, r=llogiq

Handle relative paths in module_files lints

The problem being that when clippy is run in the project's directory `lp` would be a relative path, this wasn't caught by the tests as there `lp` is an absolute path. Being a relative path it did not start with `trim_src_path` and so was ignored

Also allowed the removal of some `.to_os_string`/`.to_owned`s

changelog: Fixes [`self_named_module_files`] and [`mod_module_files`] not linting

Fixes #8123, cc `@DevinR528`

2 years agoAdd a couple of examples to `undocumented_unsafe_blocks`
Jason Newcomb [Sat, 2 Apr 2022 04:46:45 +0000 (00:46 -0400)]
Add a couple of examples to `undocumented_unsafe_blocks`

2 years agoRemove cargo_metadata dependency from clippy
Jason Newcomb [Tue, 29 Mar 2022 12:57:02 +0000 (08:57 -0400)]
Remove cargo_metadata dependency from clippy

2 years agoRemove cargo_metadata dependency from clippy_dev
Jason Newcomb [Tue, 29 Mar 2022 12:32:12 +0000 (08:32 -0400)]
Remove cargo_metadata dependency from clippy_dev

2 years agoRemove regex dependency from clippy_dev
Jason Newcomb [Tue, 29 Mar 2022 02:08:04 +0000 (22:08 -0400)]
Remove regex dependency from clippy_dev

2 years agoAuto merge of #8616 - pitaj:single_element_loop_arrays, r=llogiq
bors [Fri, 1 Apr 2022 18:45:49 +0000 (18:45 +0000)]
Auto merge of #8616 - pitaj:single_element_loop_arrays, r=llogiq

single_element_loop: handle arrays for Edition2021

changelog: [`single_element_loop`] handle arrays in Edition 2021, handle `.iter_mut()` and `.into_iter()`, and wrap in parens if necessary

2 years agosingle_element_loop: handle arrays for Edition2021
Peter Jaszkowiak [Fri, 1 Apr 2022 06:04:19 +0000 (00:04 -0600)]
single_element_loop: handle arrays for Edition2021

also handle `.iter_mut()`, `.into_iter()`,
and wrapping in parens if necessary

2 years agoAuto merge of #8610 - SabrinaJewson:transmute-int-to-char-const, r=xFrednet
bors [Wed, 30 Mar 2022 20:23:03 +0000 (20:23 +0000)]
Auto merge of #8610 - SabrinaJewson:transmute-int-to-char-const, r=xFrednet

Don't warn int-to-char transmutes in const contexts

changelog: Don't warn ``[`transmute_int_to_char`]`` in const contexts

fixes: #8379

2 years agopedantic -> restriction
Max Baumann [Wed, 30 Mar 2022 11:33:10 +0000 (13:33 +0200)]
pedantic -> restriction

2 years agoupdate description
Max Baumann [Wed, 30 Mar 2022 11:08:39 +0000 (13:08 +0200)]
update description

Co-authored-by: giraffate <f.seasons017@gmail.com>
2 years agostyle -> pedantic
Max Baumann [Mon, 28 Mar 2022 09:45:06 +0000 (11:45 +0200)]
style -> pedantic

2 years agounit_like_struct_brackets -> empty_structs_with_brackets
Max Baumann [Mon, 28 Mar 2022 09:35:43 +0000 (11:35 +0200)]
unit_like_struct_brackets -> empty_structs_with_brackets

2 years agochanges after review
Max Baumann [Mon, 28 Mar 2022 09:18:20 +0000 (11:18 +0200)]
changes after review

2 years agouse span_suggestion_hidden
Max Baumann [Sun, 27 Mar 2022 18:10:10 +0000 (20:10 +0200)]
use span_suggestion_hidden

2 years agoadditional checks for conditionally compiled code
Max Baumann [Sun, 27 Mar 2022 17:58:23 +0000 (19:58 +0200)]
additional checks for conditionally compiled code

2 years agofix godfood test
Max Baumann [Sun, 27 Mar 2022 13:33:31 +0000 (15:33 +0200)]
fix godfood test

2 years agofix uitests
Max Baumann [Sun, 27 Mar 2022 13:26:36 +0000 (15:26 +0200)]
fix uitests

2 years agofix existing clippy tests
Max Baumann [Sun, 27 Mar 2022 12:41:09 +0000 (14:41 +0200)]
fix existing clippy tests

2 years agoadd unit_like_struct_brackets
Max Baumann [Sun, 27 Mar 2022 12:16:08 +0000 (14:16 +0200)]
add unit_like_struct_brackets

2 years agoDon't warn int-to-char transmutes in const contexts
SabrinaJewson [Wed, 30 Mar 2022 17:47:50 +0000 (18:47 +0100)]
Don't warn int-to-char transmutes in const contexts

2 years agoHandle relative paths in module_files lints
Alex Macleod [Wed, 30 Mar 2022 17:44:04 +0000 (18:44 +0100)]
Handle relative paths in module_files lints

2 years agoAuto merge of #8602 - giraffate:fix_ice_for_iter_overeager_cloned, r=llogiq
bors [Wed, 30 Mar 2022 17:12:24 +0000 (17:12 +0000)]
Auto merge of #8602 - giraffate:fix_ice_for_iter_overeager_cloned, r=llogiq

Fix ICE for `iter_overeager_cloned`

Fix https://github.com/rust-lang/rust-clippy/issues/8527

changelog: Fix ICE for [`iter_overeager_cloned`]

2 years agoAuto merge of #8576 - smoelius:crate_in_macro_def, r=llogiq
bors [Wed, 30 Mar 2022 16:57:24 +0000 (16:57 +0000)]
Auto merge of #8576 - smoelius:crate_in_macro_def, r=llogiq

Add `crate_in_macro_def` lint

This PR adds a lint to check for `crate` as opposed to `$crate` used in a macro definition.

I think this can close #4798. That issue focused on the case where the macro author "imports something into said macro."

But I think use of `crate` is likely to be a bug whether it appears in a `use` statement or not. There could be some use case I am failing to see, though. (cc: `@nilscript` `@flip1995)`

changelog: `crate_in_macro_def`

2 years agoFix error message in crate_in_macro_def.stderr
Samuel E. Moelius III [Wed, 30 Mar 2022 16:52:31 +0000 (12:52 -0400)]
Fix error message in crate_in_macro_def.stderr

2 years agoMove `crate_in_macro_def` to suspicious
Samuel E. Moelius III [Wed, 30 Mar 2022 16:32:07 +0000 (12:32 -0400)]
Move `crate_in_macro_def` to suspicious

2 years agoUpdate clippy_lints/src/crate_in_macro_def.rs
Samuel Moelius [Wed, 30 Mar 2022 16:40:44 +0000 (12:40 -0400)]
Update clippy_lints/src/crate_in_macro_def.rs

Co-authored-by: llogiq <bogusandre@gmail.com>
2 years agoUpdate clippy_lints/src/crate_in_macro_def.rs
Samuel Moelius [Wed, 30 Mar 2022 16:40:25 +0000 (12:40 -0400)]
Update clippy_lints/src/crate_in_macro_def.rs

Co-authored-by: llogiq <bogusandre@gmail.com>
2 years agoUpdate clippy_lints/src/crate_in_macro_def.rs
Samuel Moelius [Wed, 30 Mar 2022 16:40:16 +0000 (12:40 -0400)]
Update clippy_lints/src/crate_in_macro_def.rs

Co-authored-by: llogiq <bogusandre@gmail.com>
2 years agoAuto merge of #8597 - giraffate:fix_changelog, r=xFrednet
bors [Wed, 30 Mar 2022 16:25:42 +0000 (16:25 +0000)]
Auto merge of #8597 - giraffate:fix_changelog, r=xFrednet

Fix version in changelog

changelog: none

2 years agoAuto merge of #8592 - c410-f3r:stuff, r=flip1995
bors [Wed, 30 Mar 2022 16:04:14 +0000 (16:04 +0000)]
Auto merge of #8592 - c410-f3r:stuff, r=flip1995

Do not fire `panic` in a constant environment

Let rustc handle panics in constant environments.

Since https://github.com/rust-lang/rust-clippy/issues/8348 I thought that such modification would require a lot of work but thanks to https://github.com/rust-lang/rust-clippy/pull/8588 I now know that it is not the case.

changelog: [`panic`]: No longer lint in constant context. `rustc` already handles this.

2 years agoAuto merge of #8586 - pitaj:fix-8378, r=flip1995
bors [Wed, 30 Mar 2022 15:46:48 +0000 (15:46 +0000)]
Auto merge of #8586 - pitaj:fix-8378, r=flip1995

specify serde version compatible with codebase

fix #8378

changelog: none

2 years agoAuto merge of #8584 - Alexendoo:map-unit-fn-context, r=Manishearth
bors [Wed, 30 Mar 2022 15:25:37 +0000 (15:25 +0000)]
Auto merge of #8584 - Alexendoo:map-unit-fn-context, r=Manishearth

Provide suggestion context in map_unit_fn

Fixes #8569

changelog: Fix incorrect suggestion for `option_map_unit_fn` , `result_map_unit_fn`

2 years agoAllow running `cargo dev lint` on a package directory
Alex Macleod [Tue, 29 Mar 2022 17:36:38 +0000 (18:36 +0100)]
Allow running `cargo dev lint` on a package directory

2 years agoFix ICE for `iter_overeager_cloned`
Takayuki Nakata [Tue, 29 Mar 2022 12:51:37 +0000 (21:51 +0900)]
Fix ICE for `iter_overeager_cloned`

2 years agoFix version in changelog
Takayuki Nakata [Mon, 28 Mar 2022 12:48:34 +0000 (21:48 +0900)]
Fix version in changelog

2 years agoAddress review comments
Samuel E. Moelius III [Mon, 28 Mar 2022 08:32:31 +0000 (04:32 -0400)]
Address review comments

2 years agoFirst submit
Jaic1 [Mon, 28 Mar 2022 04:09:01 +0000 (12:09 +0800)]
First submit

2 years agoAuto merge of #8487 - dswij:8478, r=giraffate
bors [Mon, 28 Mar 2022 00:25:45 +0000 (00:25 +0000)]
Auto merge of #8487 - dswij:8478, r=giraffate

[`map_identity`] checks for needless `map_err`

Closes #8478

changelog: [`map_identity`] checks for needless `map_err`

2 years agoAuto merge of #8519 - tysg:redundant-modulo, r=giraffate
bors [Mon, 28 Mar 2022 00:11:32 +0000 (00:11 +0000)]
Auto merge of #8519 - tysg:redundant-modulo, r=giraffate

Check if lhs < rhs in modulos in `identity_op`

Fixes #8508

changelog: [`identity_op`] now checks for modulos, e.g. `1 % 3`

2 years agoEmit lint when rhs is negative
Tianyi Song [Sun, 27 Mar 2022 13:48:15 +0000 (21:48 +0800)]
Emit lint when rhs is negative

2 years agoRustfmt
Caio [Sat, 26 Mar 2022 18:48:17 +0000 (15:48 -0300)]
Rustfmt

2 years agoDo not fire `panic` in a constant environment
Caio [Sat, 26 Mar 2022 18:39:21 +0000 (15:39 -0300)]
Do not fire `panic` in a constant environment

2 years agofix `indexing_slicing` with const
Peter Jaszkowiak [Sat, 26 Mar 2022 05:05:38 +0000 (23:05 -0600)]
fix `indexing_slicing` with const

- should not fire if indexing with a constant block
- should not fire if indexing within a constant context
(const statement or const block)

2 years agospecify serde version compatible with codebase
Peter Jaszkowiak [Fri, 25 Mar 2022 22:39:15 +0000 (16:39 -0600)]
specify serde version compatible with codebase

2 years agoProvide suggestion context in map_unit_fn
Alex Macleod [Fri, 25 Mar 2022 20:39:03 +0000 (20:39 +0000)]
Provide suggestion context in map_unit_fn

2 years agoAuto merge of #8582 - xFrednet:0000-changelog-1-60, r=Manishearth
bors [Fri, 25 Mar 2022 17:05:05 +0000 (17:05 +0000)]
Auto merge of #8582 - xFrednet:0000-changelog-1-60, r=Manishearth

Changelog for Rust 1.60.0 :crab: (Kudos to everyone who contributed!)

As always, I'm impressed by how much stuff happened in just one release. Seriously, kudos to everyone who contributed.

changelog: none

2 years agoChangelog for Rust 1.60.0 :crab:
xFrednet [Thu, 24 Mar 2022 23:27:25 +0000 (00:27 +0100)]
Changelog for Rust 1.60.0 :crab:

2 years agoAuto merge of #8580 - flip1995:rustup, r=flip1995
bors [Thu, 24 Mar 2022 13:29:13 +0000 (13:29 +0000)]
Auto merge of #8580 - flip1995:rustup, r=flip1995

Rustup

r? `@ghost`

Nice small sync with only typo fixes

changelog: none

2 years agoBump nightly version -> 2022-03-24
flip1995 [Thu, 24 Mar 2022 13:22:43 +0000 (14:22 +0100)]
Bump nightly version -> 2022-03-24

2 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Thu, 24 Mar 2022 13:13:37 +0000 (14:13 +0100)]
Merge remote-tracking branch 'upstream/master' into rustup

2 years agoTypo
Samuel Moelius [Thu, 24 Mar 2022 12:57:08 +0000 (08:57 -0400)]
Typo

2 years agoAuto merge of #8579 - yoav-lavi:squashed-master, r=flip1995
bors [Thu, 24 Mar 2022 12:57:08 +0000 (12:57 +0000)]
Auto merge of #8579 - yoav-lavi:squashed-master, r=flip1995

`unnecessary_join` lint

changelog: Adds a lint called ``[`unnecessary_join`]`` that detects cases of `.collect::<Vec<String>>.join("")` or `.collect::<Vec<_>>.join("")` on an iterator, suggesting `.collect::<String>()` instead

Fixes: https://github.com/rust-lang/rust-clippy/issues/8570
This is a reopen of https://github.com/rust-lang/rust-clippy/pull/8573

changelog: add lint [`unnecessary_join`]

2 years ago`unnecessary_join` lint
Yoav Lavi [Thu, 24 Mar 2022 12:18:18 +0000 (13:18 +0100)]
`unnecessary_join` lint

2 years agoAdd `crate_in_macro_def` lint
Samuel E. Moelius III [Thu, 24 Mar 2022 01:08:52 +0000 (21:08 -0400)]
Add `crate_in_macro_def` lint

2 years agoAuto merge of #8232 - Jarcho:match_same_arm_860, r=xFrednet
bors [Mon, 21 Mar 2022 20:42:51 +0000 (20:42 +0000)]
Auto merge of #8232 - Jarcho:match_same_arm_860, r=xFrednet

`match_same_arms` fix

fixes #860
fixes #1140

changelog: Don't lint `match_same_arms` when an interposing arm's pattern would overlap

2 years agoAuto merge of #8561 - FoseFx:use_unwrap_or, r=xFrednet
bors [Mon, 21 Mar 2022 20:08:29 +0000 (20:08 +0000)]
Auto merge of #8561 - FoseFx:use_unwrap_or, r=xFrednet

add `or_then_unwrap`

Closes #8557

changelog: New lint [`or_then_unwrap`]

2 years agoAuto merge of #8520 - J-ZhengLi:issue8506, r=xFrednet
bors [Mon, 21 Mar 2022 19:51:56 +0000 (19:51 +0000)]
Auto merge of #8520 - J-ZhengLi:issue8506, r=xFrednet

fix suggestion on `[map_flatten]` being cropped causing possible information loss

fixes #8506

Multi-line suggestion given by the lint is missing its bottom part, which could potentially contains useful information about the fix.

---

changelog: [`map_flatten`]: Long suggestions will now be splitup into two help messages

2 years agoallowing [`map_flatten`] to split long suggestions
J-ZhengLi [Mon, 21 Mar 2022 06:11:22 +0000 (14:11 +0800)]
allowing [`map_flatten`] to split long suggestions
add new function `span_lint_and_sugg_` for edges in `clippy_utils::diagnostics`

2 years agorefactor: remove need for MethodCall matching
Max Baumann [Sun, 20 Mar 2022 23:04:37 +0000 (00:04 +0100)]
refactor: remove need for MethodCall matching

2 years agorefactor: use is_lang_ctor()
Max Baumann [Sun, 20 Mar 2022 22:54:04 +0000 (23:54 +0100)]
refactor: use is_lang_ctor()

2 years agofeat: change error message
Max Baumann [Sun, 20 Mar 2022 22:43:17 +0000 (23:43 +0100)]
feat: change error message

2 years agoAuto merge of #8559 - pickfire:patch-1, r=xFrednet
bors [Sun, 20 Mar 2022 22:32:12 +0000 (22:32 +0000)]
Auto merge of #8559 - pickfire:patch-1, r=xFrednet

Fix typo in bug report

repoduce -> reproduce

---

changelog: none

2 years agotest: add method chain test
Max Baumann [Sat, 19 Mar 2022 17:17:43 +0000 (18:17 +0100)]
test: add method chain test

2 years agofeat: make fixable
Max Baumann [Fri, 18 Mar 2022 22:18:36 +0000 (23:18 +0100)]
feat: make fixable

2 years agofeat: use span_lint_and_sugg
Max Baumann [Fri, 18 Mar 2022 21:44:56 +0000 (22:44 +0100)]
feat: use span_lint_and_sugg

2 years agorefactor: move into methods module
Max Baumann [Fri, 18 Mar 2022 20:11:54 +0000 (21:11 +0100)]
refactor: move into methods module

2 years agoAuto merge of #8562 - Jarcho:enum_tuple_variant_as_int, r=Manishearth
bors [Fri, 18 Mar 2022 15:54:45 +0000 (15:54 +0000)]
Auto merge of #8562 - Jarcho:enum_tuple_variant_as_int, r=Manishearth

Add lint `cast_enum_constructor`

fixes: #1116

changelog: Add lint `cast_enum_constructor`

2 years agofeat: add comment
Max Baumann [Fri, 18 Mar 2022 13:45:48 +0000 (14:45 +0100)]
feat: add comment

2 years agoAuto merge of #8543 - dswij:8393, r=giraffate
bors [Fri, 18 Mar 2022 00:42:18 +0000 (00:42 +0000)]
Auto merge of #8543 - dswij:8393, r=giraffate

`unnecessary_lazy_eval` show suggestions on multiline lint

Closes #8393

changelog: [`unnecessary_lazy_eval`] now shows suggestions for long-line lints

2 years agofix: ran update_lints
Max Baumann [Fri, 18 Mar 2022 00:12:39 +0000 (01:12 +0100)]
fix: ran update_lints

2 years agorefactor: rename lint to or_then_unwrap
Max Baumann [Fri, 18 Mar 2022 00:04:33 +0000 (01:04 +0100)]
refactor: rename lint to or_then_unwrap

2 years agoAdd lint `cast_enum_constructor`
Jason Newcomb [Thu, 17 Mar 2022 20:04:45 +0000 (16:04 -0400)]
Add lint `cast_enum_constructor`

2 years agofeat: add tests and fix existing ones
Max Baumann [Thu, 17 Mar 2022 23:51:26 +0000 (00:51 +0100)]
feat: add tests and fix existing ones

2 years agofeat: rename variable in example
Max Baumann [Thu, 17 Mar 2022 23:34:24 +0000 (00:34 +0100)]
feat: rename variable in example

2 years agorefactor: use pattern matching for MethodCall arguments
Max Baumann [Thu, 17 Mar 2022 23:23:55 +0000 (00:23 +0100)]
refactor: use pattern matching for MethodCall arguments

Co-authored-by: xFrednet <xFrednet@gmail.com>
2 years agoRollup merge of #94960 - codehorseman:master, r=oli-obk
Dylan DPC [Thu, 17 Mar 2022 21:55:05 +0000 (22:55 +0100)]
Rollup merge of #94960 - codehorseman:master, r=oli-obk

Fix many spelling mistakes

Signed-off-by: codehorseman <cricis@yeah.net>
2 years agoRollup merge of #94309 - eholk:issue-57017, r=tmandry
Dylan DPC [Thu, 17 Mar 2022 21:55:02 +0000 (22:55 +0100)]
Rollup merge of #94309 - eholk:issue-57017, r=tmandry

[generator_interior] Be more precise with scopes of borrowed places

Previously the generator interior type checking analysis would use the nearest temporary scope as the scope of a borrowed value. This ends up being overly broad for cases such as:

```rust
fn status(_client_status: &Client) -> i16 {
    200
}

fn main() {
    let client = Client;
    let g = move || match status(&client) {
        _status => yield,
    };
    assert_send(g);
}
```

In this case, the borrow `&client` could be considered in scope for the entirety of the `match` expression, meaning it would be viewed as live across the `yield`, therefore making the generator not `Send`.

In most cases, we want to use the enclosing expression as the scope for a borrowed value which will be less than or equal to the nearest temporary scope. This PR changes the analysis to use the enclosing expression as the scope for most borrows, with the exception of borrowed RValues which are true temporary values that should have the temporary scope. There's one further exception where borrows of a copy such as happens in autoref cases also should be ignored despite being RValues.

Joint work with `@nikomatsakis`

Fixes #57017

r? `@tmandry`

2 years agofix: fix clippy_lints
Max Baumann [Thu, 17 Mar 2022 18:52:07 +0000 (19:52 +0100)]
fix: fix clippy_lints

2 years agofix: fix broken dogfood tests
Max Baumann [Thu, 17 Mar 2022 18:29:59 +0000 (19:29 +0100)]
fix: fix broken dogfood tests

2 years agofix: fix tests
Max Baumann [Thu, 17 Mar 2022 18:13:44 +0000 (19:13 +0100)]
fix: fix tests

2 years agofeat: add use_unwrap_or
Max Baumann [Thu, 17 Mar 2022 17:57:28 +0000 (18:57 +0100)]
feat: add use_unwrap_or

2 years agoAuto merge of #8552 - Jarcho:ptr_arg_8495, r=xFrednet
bors [Thu, 17 Mar 2022 17:05:26 +0000 (17:05 +0000)]
Auto merge of #8552 - Jarcho:ptr_arg_8495, r=xFrednet

Don't lint `ptr_arg` on `&mut Cow<_>`

fixes: #8495

changelog: Don't lint `ptr_arg` on `&mut Cow<_>`

2 years agoFix typo in bug report
Ivan Tham [Thu, 17 Mar 2022 14:53:27 +0000 (22:53 +0800)]
Fix typo in bug report

repoduce -> reproduce