Commit graph

10244 commits

Author SHA1 Message Date
Eduardo Broto
a83eb7ca99 Make --fix imply --no-deps 2020-11-27 17:41:50 +01:00
Eduardo Broto
7eda421e96 Apply suggestion regarding clippy_enabled bool 2020-11-27 17:41:50 +01:00
Eduardo Broto
192ccfb4ef Update README.md 2020-11-27 17:41:50 +01:00
Eduardo Broto
0387981f2b Add --no-deps command-line argument 2020-11-27 17:41:50 +01:00
bors
84ba08f391 Auto merge of #6392 - ebroto:rustup, r=ebroto
Rustup

changelog: none

r? `@ghost`
2020-11-27 16:17:07 +00:00
Eduardo Broto
18d37a5d25 Merge remote-tracking branch 'upstream/master' into rustup 2020-11-27 17:15:10 +01:00
bors
5d585ec022 Auto merge of #79318 - cjgillot:fitem, r=lcnr
Store HIR ForeignItem in a side table

In a similar fashion to Item, ImplItem and TraitItem.
2020-11-27 13:45:22 +00:00
Markus Legner
b822632073
Factor out check_binary from function check_expr. 2020-11-27 08:55:04 +01:00
Markus Legner
e42a18f02a
Run cargo dev fmt. 2020-11-27 08:55:04 +01:00
Markus Legner
82a7068007
Trigger modulo_one lint also on -1. 2020-11-27 08:54:35 +01:00
bors
f9b8a59615 Auto merge of #6386 - rust-lang:flip1995-patch-1, r=ebroto
Remove mention of possibility to specify the MSRV with a tilde/caret

As `@taiki-e` explained in https://github.com/rust-lang/rust-clippy/pull/6379#discussion_r530743279, mentioning this might be problematic.

changelog: none
2020-11-27 07:35:25 +00:00
bors
7a7399076a Auto merge of #6389 - giraffate:sync-from-rust, r=llogiq
Rustup

changelog: none
2020-11-27 06:53:59 +00:00
Takayuki Nakata
e91d15f42d cargo dev fmt 2020-11-27 10:32:44 +09:00
Takayuki Nakata
0924d6286a Merge remote-tracking branch 'upstream/master' into sync-from-rust 2020-11-27 10:25:07 +09:00
Camille GILLOT
d95f11bcd6 Remove ForeignMod struct. 2020-11-26 21:32:27 +01:00
pro-grammer1
cb6a654b75 Added known problem to comparison_chain docs 2020-11-26 20:07:50 +00:00
bors
f303168a0d Auto merge of #77671 - flip1995:lint_list_always_plugins, r=oli-obk,Manishearth
Always print lints from plugins, if they're available

Currently you can get a list of lints and lint groups by running `rustc
-Whelp`. This prints an additional line at the end:
```
Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
```

Clippy is such a "compiler plugin", that provides additional lints.
Running `clippy-driver -Whelp` (`rustc` wrapper) still only prints the
rustc lints with the above message at the end. But when running
`clippy-driver -Whelp main.rs`, where `main.rs` is any rust file, it
also prints Clippy lints. I don't think this is a good approach from a
UX perspective: Why is a random file necessary to print a help message?

This PR changes this behavior: Whenever a compiler callback
registers lints, it is assumed that these lints come from a plugin and
are printed without having to specify a Rust source file.

Fixes rust-lang/rust-clippy#6122

cc `@Manishearth` `@ebroto` for the Clippy changes.
2020-11-26 18:51:45 +00:00
flip1995
6eb2c27bcc
Note that it is possible to omit the patch version 2020-11-26 10:15:00 +01:00
Philipp Krones
3bcc75d446
Remove mention of possibility to specify the MSRV with a tilde/caret 2020-11-26 10:01:02 +01:00
bors
403816fbc9 Auto merge of #6362 - nico-abram:unnecessary_cast_dot_float_literal, r=ebroto
Fix rust-lang/rust#79255 - Incorrect try suggestion for float cast

changelog: Fix rust-lang/rust#79255 - Incorrect try suggestion for float literal cast ending in dot
2020-11-26 08:41:16 +00:00
unknown
3b53de6b36 Fix rust-lang/rust#79255 - Incorrect try suggestion for unnecessary float literal cast ending in dot 2020-11-25 19:38:55 -03:00
bors
71f7dd813a Auto merge of #6379 - Suyash458:master, r=flip1995
update readme for specifying msrv

changelog: add some documentation for the `msrv` feature (#6097)
related PR: https://github.com/rust-lang/rust-clippy/pull/6201
2020-11-25 19:41:42 +00:00
Philipp Krones
b2eb55b03e
Fix formatting in README.md 2020-11-25 20:37:32 +01:00
Suyash458
94a6832f0b update README.md 2020-11-25 22:09:50 +05:30
bors
ae57785966 Auto merge of #6333 - PunitLodha:master, r=flip1995
Added lint str_to_string

*Please write a short comment explaining your change (or "none" for internal only changes)*
changelog: un-deprecate [`str_to_string`] and [`string_to_string`] and introduce them as `restriction` lints again.
Fixes #5610
Added new lint:- str_to_string
r? `@flip1995`
2020-11-25 16:02:42 +00:00
Suyash458
85a17b5334 update README.md for specifying msrv 2020-11-25 21:30:34 +05:30
PunitLodha
2345ef5b1f added lints str_to_string and string_to_string 2020-11-25 20:59:29 +05:30
bors
32c51d2c58 Auto merge of #6201 - Suyash458:master, r=flip1995
Add support for minimum supported rust version

add configuration option for minimum supported rust version
add msrv attribute to some lints listed in #6097
add tests
addresses #6097

changelog: Add `msrv` configuration to Clippy. This should get a longer changelog entry.
2020-11-25 11:39:30 +00:00
flip1995
d06076c0c5
Add test for multiple defined msrv attrs 2020-11-25 12:23:28 +01:00
flip1995
93f922a858
Add note where the first definition of msrv attr is 2020-11-25 12:23:28 +01:00
flip1995
b2e2c0806e
Improve extract_msrv_attr! situation 2020-11-25 12:22:58 +01:00
Suyash458
aaa4325045
add support for minimum supported rust version.
add configuration option for minimum supported rust version
add msrv attribute to some lints listed in #6097
add tests
2020-11-25 12:22:47 +01:00
Christiaan Dirkx
dc075b4266 Change redundant_pattern_matching to also lint std::net::IpAddr
Suggest using utility methods `is_ipv4` and `is_ipv6`.
2020-11-25 02:01:05 +01:00
Arlie Davis
f6827839c0 Move lev_distance to rustc_ast, make non-generic
rustc_ast currently has a few dependencies on rustc_lexer. Ideally, an AST
would not have any dependency its lexer, for minimizing unnecessarily
design-time dependencies. Breaking this dependency would also have practical
benefits, since modifying rustc_lexer would not trigger a rebuild of rustc_ast.

This commit does not remove the rustc_ast --> rustc_lexer dependency,
but it does remove one of the sources of this dependency, which is the
code that handles fuzzy matching between symbol names for making suggestions
in diagnostics. Since that code depends only on Symbol, it is easy to move
it to rustc_span. It might even be best to move it to a separate crate,
since other tools such as Cargo use the same algorithm, and have simply
contain a duplicate of the code.

This changes the signature of find_best_match_for_name so that it is no
longer generic over its input. I checked the optimized binaries, and this
function was duplicated at nearly every call site, because most call sites
used short-lived iterator chains, generic over Map and such. But there's
no good reason for a function like this to be generic, since all it does
is immediately convert the generic input (the Iterator impl) to a concrete
Vec<Symbol>. This has all of the costs of generics (duplicated method bodies)
with no benefit.

Changing find_best_match_for_name to be non-generic removed about 10KB of
code from the optimized binary. I know it's a drop in the bucket, but we have
to start reducing binary size, and beginning to tame over-use of generics
is part of that.
2020-11-24 16:12:23 -08:00
bors
f897d27d8b Auto merge of #6339 - CDirkx:redundant-pattern-match-poll, r=ebroto
Change `redundant_pattern_matching` to also lint `std::task::Poll`

`reduntant_pattern_matching` currently lints pattern matching on `Option` and `Result` where the `is_variant` utility methods could be used instead: `is_some`, `is_none`, `is_ok`, `is_err`. This PR extends this behaviour to `std::task::Poll`, suggesting the methods `is_pending` and `is_ready`.

Motivation: The current description of `redundant_pattern_matching` mentions

> It's more concise and clear to just use the proper utility function

which in my mind applies to `Poll` as well.

changelog: Enhance [`redundant_pattern_matching`] to also lint on `std::task::Poll`
2020-11-24 23:19:43 +00:00
bors
5b40ce3f2d Auto merge of #6374 - flip1995:rustup, r=flip1995
Rustup

r? `@ghost`

changelog: [`panic`],[`unimplemented`],[`unreachable`],[`todo`] now also handle the `core::` version of those macros correctly.
2020-11-24 16:07:11 +00:00
flip1995
c6a577ea11
Merge remote-tracking branch 'upstream/master' into rustup 2020-11-24 17:05:01 +01:00
flip1995
03f04314dd clippy: Remove now obsolete lintlist module
Also stop updating the lintlist module in clippy_dev update_lints
2020-11-24 10:37:31 +01:00
flip1995
9f1505ce9f clippy: Let rustc handle describing lints 2020-11-24 10:37:15 +01:00
bors
53ce1dd719 Auto merge of #79228 - flip1995:clippyup, r=oli-obk
Update Clippy

Biweekly Clippy update

r? `@Manishearth`
2020-11-24 06:56:02 +00:00
bors
295fe28057 Auto merge of #6313 - giraffate:fix_fp_needless_collect, r=ebroto
Fix FP in indirect `needless_collect` when used multiple times

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

changelog: Fix FP in indirect `needless_collect` when used multiple times
2020-11-23 22:26:45 +00:00
bors
51b633b1ad Auto merge of #6371 - ebroto:rustup, r=ebroto
Rustup

changelog: none

r? `@ghost`
2020-11-23 22:05:39 +00:00
bors
d5b40bf469 Auto merge of #78343 - camelid:macros-qualify-panic, r=m-ou-se
Qualify `panic!` as `core::panic!` in non-built-in `core` macros

Fixes #78333.

-----

Otherwise code like this

    #![no_implicit_prelude]

    fn main() {
        ::std::todo!();
        ::std::unimplemented!();
    }

will fail to compile, which is unfortunate and presumably unintended.

This changes many invocations of `panic!` in a `macro_rules!` definition
to invocations of `$crate::panic!`, which makes the invocations hygienic.

Note that this does not make the built-in macro `assert!` hygienic.
2020-11-23 22:05:28 +00:00
Eduardo Broto
209ab1885c Merge remote-tracking branch 'upstream/master' into rustup 2020-11-23 23:02:12 +01:00
Camelid
d708b444e4 Qualify panic! as core::panic! in non-built-in core macros
Otherwise code like this

    #![no_implicit_prelude]

    fn main() {
        ::std::todo!();
        ::std::unimplemented!();
    }

will fail to compile, which is unfortunate and presumably unintended.

This changes many invocations of `panic!` in a `macro_rules!` definition
to invocations of `$crate::panic!`, which makes the invocations hygienic.

Note that this does not make the built-in macro `assert!` hygienic.
2020-11-23 11:28:25 -08:00
bors
e5fddb6747 Auto merge of #78439 - lzutao:rm-clouldabi, r=Mark-Simulacrum
Drop support for all cloudabi targets

`cloudabi` is a tier-3 target, and [it is no longer being maintained upstream][no].

This PR drops supports for cloudabi targets. Those targets are:
* aarch64-unknown-cloudabi
* armv7-unknown-cloudabi
* i686-unknown-cloudabi
* x86_64-unknown-cloudabi

Since this drops supports for a target, I'd like somebody to tag `relnotes` label to this PR.

Some other issues:
* The tidy exception for `cloudabi` crate is still remained because
  * `parking_lot v0.9.0` and `parking_lot v0.10.2` depends on `cloudabi v0.0.3`.
  * `parking_lot v0.11.0` depends on `cloudabi v0.1.0`.

[no]: https://github.com/NuxiNL/cloudabi#note-this-project-is-unmaintained
2020-11-23 19:01:19 +00:00
bors
58a2bc45d7 Auto merge of #6369 - camsteffen:cast-cfg, r=Manishearth
Disable unnecessary_cast for cfg-dependant types

changelog: Disable unnecessary_cast for cfg-dependant types

Fix  #6331
2020-11-23 16:33:13 +00:00
bors
723ac0faf1 Auto merge of #6317 - chansuke:add-external-macro, r=llogiq
Add exteranal macros for as_conversions

Added external macros to this PR https://github.com/rust-lang/rust-clippy/pull/4888.

r? `@llogiq`

changelog: none
2020-11-23 13:26:28 +00:00
flip1995
284c359c61 Fix ICE in utils::implements_trait
This only happend when debug_assertions were enabled in rustc
2020-11-23 13:52:27 +01:00
flip1995
d3d2018ead Merge commit '3e7c6dec244539970b593824334876f8b6ed0b18' into clippyup 2020-11-23 13:51:04 +01:00