Commit graph

111 commits

Author SHA1 Message Date
Aaron Hill
33f3cfcadc Fix inconsistencies in handling of inert attributes on statements
When the 'early' and 'late' visitors visit an attribute target, they
activate any lint attributes (e.g. `#[allow]`) that apply to it.
This can affect warnings emitted on sibiling attributes. For example,
the following code does not produce an `unused_attributes` for
`#[inline]`, since the sibiling `#[allow(unused_attributes)]` suppressed
the warning.

```rust
trait Foo {
    #[allow(unused_attributes)] #[inline] fn first();
    #[inline] #[allow(unused_attributes)] fn second();
}
```

However, we do not do this for statements - instead, the lint attributes
only become active when we visit the struct nested inside `StmtKind`
(e.g. `Item`).

Currently, this is difficult to observe due to another issue - the
`HasAttrs` impl for `StmtKind` ignores attributes for `StmtKind::Item`.
As a result, the `unused_doc_comments` lint will never see attributes on
item statements.

This commit makes two interrelated fixes to the handling of inert
(non-proc-macro) attributes on statements:

* The `HasAttr` impl for `StmtKind` now returns attributes for
  `StmtKind::Item`, treating it just like every other `StmtKind`
  variant. The only place relying on the old behavior was macro
  which has been updated to explicitly ignore attributes on item
  statements. This allows the `unused_doc_comments` lint to fire for
  item statements.
* The `early` and `late` lint visitors now activate lint attributes when
  invoking the callback for `Stmt`. This ensures that a lint
  attribute (e.g. `#[allow(unused_doc_comments)]`) can be applied to
  sibiling attributes on an item statement.

For now, the `unused_doc_comments` lint is explicitly disabled on item
statements, which preserves the current behavior. The exact locatiosn
where this lint should fire are being discussed in PR #78306
2020-10-24 11:55:48 -04:00
Santiago Pastorino
0af467ebf2 Handle ExprKind::ConstBlock on clippy 2020-10-16 17:14:34 -03:00
flip1995
282c59820b Merge commit '3d0b0e66afdfaa519d8855b338b35b4605775945' into clippyup 2020-08-28 18:43:25 +02:00
David Wood
f13d2bfd9b clippy: support QPath::LangItem
This commit updates clippy with the introduction of `QPath::LangItem` so
that it still compiles.

Signed-off-by: David Wood <david@davidtw.co>
2020-08-17 13:55:05 +01:00
Eduard-Mihai Burtescu
30c046ede4 Use 'tcx for references to AccessLevels wherever possible. 2020-07-03 00:04:48 +03:00
flip1995
80bcbf521c Merge commit 'c2c07fa9d095931eb5684a42942a7b573a0c5238' into clippyup 2020-06-23 17:05:22 +02:00
Aaron Hill
6b3ee8f600 Update Clippy for MethodCall changes 2020-06-10 17:30:11 -04:00
Amanieu d'Antras
d25b25610b Handle InlineAsm in clippy 2020-05-18 14:41:33 +01:00
Philipp Krones
a353f0f174
Rename dummy_hir_id -> parent_hir_id 2020-04-15 19:46:05 +02:00
Matthias Krüger
721549569c rustup https://github.com/rust-lang/rust/pull/71116 2020-04-15 18:58:44 +02:00
Matthias Krüger
aff57e0f43 rustup https://github.com/rust-lang/rust/pull/70536 2020-03-30 11:17:58 +02:00
Matthias Krüger
48da6e926c rustup https://github.com/rust-lang/rust/pull/68404 2020-03-27 20:41:53 +01:00
Matthias Krüger
b9d6bf3bfb rustup https://github.com/rust-lang/rust/pull/69920/ 2020-03-19 09:14:53 +01:00
Matthias Krüger
ba0884bee3 rustup https://github.com/rust-lang/rust/pull/68944 2020-03-16 11:36:17 +01:00
Yuki Okushi
4253aa7137 Rustup to rust-lang/rust#69592 2020-03-01 12:23:33 +09:00
flip1995
8472ecda0f
Fix fallout 2020-02-21 11:14:18 +01:00
Yuki Okushi
ce1c6b285d Rustup to rust-lang/rust#68045 2020-01-13 21:55:57 +09:00
Yuki Okushi
39947992b5 Rustup to rust-lang/rust#67806 2020-01-11 21:50:00 +09:00
Yuki Okushi
10cf141ebb Apply review comments 2020-01-11 19:39:43 +09:00
Yuki Okushi
1d7d4e9217 Rustup to rust-lang/rust#67258 2020-01-11 09:05:51 +09:00
Yuki Okushi
e58cfac458 Rustup to rust-lang/rust#67979 2020-01-09 16:43:51 +09:00
Yuki Okushi
2f2eaf8b7e Rustup to rust-lang/rust#67886 2020-01-07 01:46:33 +09:00
Yuki Okushi
a4c201e6b4 Rustup to rust-lang/rust#66942 2019-12-30 13:02:10 +09:00
Yuki Okushi
e2636729ec Rustup to rust-lang/rust#66936 2019-12-27 16:13:53 +09:00
Lzu Tao
652666b288 rustup "Add span information to ExprKind::Assign" 2019-12-24 11:25:24 +07:00
flip1995
9632e27487
Add <'_> where necessary 2019-12-22 15:42:41 +01:00
Matthias Krüger
98e433d70d
Rustup to rust-lang/rust#66878 2019-12-04 01:34:01 +01:00
Manish Goregaokar
e381143a6b More borrowkind fixes 2019-11-27 15:09:48 -08:00
Manish Goregaokar
341e266508 Add BorrowKind::Ref 2019-11-27 14:39:28 -08:00
flip1995
6eeac46b91
Run rustfmt 2019-11-25 15:20:10 +01:00
flip1995
d43c424145
Rustup to rust-lang/rust#66671 2019-11-25 13:18:38 +01:00
flip1995
e4636f3c39
Rustup to rust-lang/rust#66515
Fixes #4835
2019-11-22 13:47:33 +01:00
Manish Goregaokar
e9a3e54910 MutImmutable -> Immutable, MutMutable -> Mutable, CaptureClause -> CaptureBy 2019-11-11 10:58:39 -08:00
flip1995
e917b01286
Rustup to rust-lang/rust#65884 2019-11-07 13:27:00 +01:00
Andre Bogus
cc622608db new lints around #[must_use] fns
`must_use_unit` lints unit-returning functions with a `#[must_use]`
attribute, suggesting to remove it.

`double_must_use` lints functions with a plain `#[must_use]`
attribute, but which return a type which is already `#[must_use]`,
so the attribute has no benefit.

`must_use_candidate` is a pedantic lint that lints functions and
methods that return some non-unit type that is not already
`#[must_use]` and suggests to add the annotation.
2019-10-14 12:09:04 +02:00
flip1995
8d8ba14371
Fix author lint 2019-09-27 18:01:04 +02:00
flip1995
4bbd10a585
Rustup to rust-lang/rust#64813 2019-09-27 17:21:20 +02:00
Manish Goregaokar
982c51e769 arm.pats -> arm.pat 2019-09-25 12:52:16 -07:00
Philipp Hansch
818b2ccfc5
Rustup to https://github.com/rust-lang/rust/pull/63854 2019-08-25 08:06:32 +02:00
Lzu Tao
5b367ed4a3 Add missing field to LitKind::Str 2019-08-23 18:02:13 +07:00
Michael Wright
b313d25350 Fix breakage due to rust-lang/rust#61708 2019-08-18 13:14:47 +02:00
flip1995
9533fa5b19
Rustup to rust-lang/rust#63543 2019-08-15 10:14:06 +02:00
Philipp Hansch
abfa8a952c
Doctests: Fix all complexity lint docs
cc #4319
2019-08-02 18:16:35 +02:00
Michael Wright
adcc02ed8a Address reviews 2019-07-06 19:35:08 +02:00
Michael Wright
0579c3e0aa Fix breakage due to rust-lang/rust#61988 2019-07-06 19:06:49 +02:00
Lzu Tao
321779979a Fix missing field in ExprKind::Yield
Rustup rust-lang/rust#61941
2019-06-19 16:59:25 +07:00
Oliver Scherer
f98e4bd33b
Fix Block dump in author lint 2019-05-28 13:01:11 +02:00
Manish Goregaokar
19cfb84405 Start handling desugarings in author lint 2019-05-10 23:43:58 -07:00
Manish Goregaokar
5661e5947f Add IfDesugar to desugaring_name 2019-05-10 23:40:42 -07:00
Manish Goregaokar
69b1da4d82 Remove some unnecessary If arms 2019-05-10 23:40:42 -07:00