Skip to content

Commit 609cd31

Browse files
authored
r? @ghost changelog: none
2 parents dff0294 + 416f7e8 commit 609cd31

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+164
-247
lines changed

clippy_lints/src/approx_const.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_and_help;
33
use clippy_utils::msrvs::{self, Msrv};
44
use rustc_ast::ast::{FloatTy, LitFloatType, LitKind};
5+
use rustc_attr_parsing::RustcVersion;
56
use rustc_hir::{Expr, ExprKind};
67
use rustc_lint::{LateContext, LateLintPass};
7-
use rustc_session::{RustcVersion, impl_lint_pass};
8+
use rustc_session::impl_lint_pass;
89
use rustc_span::symbol;
910
use std::f64::consts as f64;
1011

clippy_lints/src/attrs/inline_always.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::INLINE_ALWAYS;
22
use super::utils::is_word;
33
use clippy_utils::diagnostics::span_lint;
4-
use rustc_ast::Attribute;
4+
use rustc_hir::Attribute;
55
use rustc_lint::LateContext;
66
use rustc_span::symbol::Symbol;
77
use rustc_span::{Span, sym};

clippy_lints/src/attrs/repr_attributes.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_ast::Attribute;
1+
use rustc_hir::Attribute;
22
use rustc_lint::LateContext;
33
use rustc_span::{Span, sym};
44

clippy_lints/src/attrs/should_panic_without_expect.rs

+3-7
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,20 @@ use super::{Attribute, SHOULD_PANIC_WITHOUT_EXPECT};
22
use clippy_utils::diagnostics::span_lint_and_sugg;
33
use rustc_ast::token::{Token, TokenKind};
44
use rustc_ast::tokenstream::TokenTree;
5-
use rustc_ast::{AttrArgs, AttrArgsEq, AttrKind};
5+
use rustc_ast::{AttrArgs, AttrKind};
66
use rustc_errors::Applicability;
77
use rustc_lint::EarlyContext;
88
use rustc_span::sym;
99

1010
pub(super) fn check(cx: &EarlyContext<'_>, attr: &Attribute) {
1111
if let AttrKind::Normal(normal_attr) = &attr.kind {
12-
if let AttrArgs::Eq {
13-
value: AttrArgsEq::Ast(_),
14-
..
15-
} = &normal_attr.item.args
16-
{
12+
if let AttrArgs::Eq { .. } = &normal_attr.item.args {
1713
// `#[should_panic = ".."]` found, good
1814
return;
1915
}
2016

2117
if let AttrArgs::Delimited(args) = &normal_attr.item.args
22-
&& let mut tt_iter = args.tokens.trees()
18+
&& let mut tt_iter = args.tokens.iter()
2319
&& let Some(TokenTree::Token(
2420
Token {
2521
kind: TokenKind::Ident(sym::expected, _),

clippy_lints/src/booleans.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ use clippy_utils::msrvs::{self, Msrv};
55
use clippy_utils::source::SpanRangeExt;
66
use clippy_utils::ty::{implements_trait, is_type_diagnostic_item};
77
use rustc_ast::ast::LitKind;
8+
use rustc_attr_parsing::RustcVersion;
89
use rustc_errors::Applicability;
910
use rustc_hir::intravisit::{FnKind, Visitor, walk_expr};
1011
use rustc_hir::{BinOpKind, Body, Expr, ExprKind, FnDecl, UnOp};
1112
use rustc_lint::{LateContext, LateLintPass, Level};
12-
use rustc_session::{RustcVersion, impl_lint_pass};
13+
use rustc_session::impl_lint_pass;
1314
use rustc_span::def_id::LocalDefId;
1415
use rustc_span::{Span, sym};
1516

clippy_lints/src/cognitive_complexity.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ use clippy_utils::ty::is_type_diagnostic_item;
55
use clippy_utils::visitors::for_each_expr_without_closures;
66
use clippy_utils::{LimitStack, get_async_fn_body, is_async_fn};
77
use core::ops::ControlFlow;
8-
use rustc_ast::ast::Attribute;
98
use rustc_hir::intravisit::FnKind;
10-
use rustc_hir::{Body, Expr, ExprKind, FnDecl};
9+
use rustc_hir::{Attribute, Body, Expr, ExprKind, FnDecl};
1110
use rustc_lint::{LateContext, LateLintPass, LintContext};
1211
use rustc_session::impl_lint_pass;
1312
use rustc_span::def_id::LocalDefId;

clippy_lints/src/crate_in_macro_def.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ fn is_macro_export(attr: &Attribute) -> bool {
8282

8383
fn contains_unhygienic_crate_reference(tts: &TokenStream) -> Option<Span> {
8484
let mut prev_is_dollar = false;
85-
let mut cursor = tts.trees();
86-
while let Some(curr) = cursor.next() {
85+
let mut iter = tts.iter();
86+
while let Some(curr) = iter.next() {
8787
if !prev_is_dollar
8888
&& let Some(span) = is_crate_keyword(curr)
89-
&& let Some(next) = cursor.look_ahead(0)
89+
&& let Some(next) = iter.peek()
9090
&& is_token(next, &TokenKind::PathSep)
9191
{
9292
return Some(span);

clippy_lints/src/dereference.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,8 @@ impl TyCoercionStability {
877877
| ty::CoroutineClosure(..)
878878
| ty::Never
879879
| ty::Tuple(_)
880-
| ty::Alias(ty::Projection, _) => Self::Deref,
880+
| ty::Alias(ty::Projection, _)
881+
| ty::UnsafeBinder(_) => Self::Deref,
881882
};
882883
}
883884
}

clippy_lints/src/derive.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ use clippy_utils::{has_non_exhaustive_attr, is_lint_allowed, match_def_path, pat
66
use rustc_errors::Applicability;
77
use rustc_hir::def_id::DefId;
88
use rustc_hir::intravisit::{FnKind, Visitor, walk_expr, walk_fn, walk_item};
9-
use rustc_hir::{
10-
self as hir, BlockCheckMode, BodyId, Expr, ExprKind, FnDecl, Impl, Item, ItemKind, Safety, UnsafeSource,
11-
};
9+
use rustc_hir::{self as hir, BlockCheckMode, BodyId, Expr, ExprKind, FnDecl, Impl, Item, ItemKind, UnsafeSource};
1210
use rustc_lint::{LateContext, LateLintPass};
1311
use rustc_middle::hir::nested_filter;
1412
use rustc_middle::ty::{
@@ -421,7 +419,7 @@ impl<'tcx> Visitor<'tcx> for UnsafeVisitor<'_, 'tcx> {
421419
id: LocalDefId,
422420
) -> Self::Result {
423421
if let Some(header) = kind.header()
424-
&& header.safety == Safety::Unsafe
422+
&& header.safety.is_unsafe()
425423
{
426424
ControlFlow::Break(())
427425
} else {

clippy_lints/src/doc/empty_line_after.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ use clippy_utils::diagnostics::span_lint_and_then;
22
use clippy_utils::source::{SpanRangeExt, snippet_indent};
33
use clippy_utils::tokenize_with_text;
44
use itertools::Itertools;
5+
use rustc_ast::AttrStyle;
56
use rustc_ast::token::CommentKind;
6-
use rustc_ast::{AttrKind, AttrStyle, Attribute};
77
use rustc_errors::{Applicability, Diag, SuggestionStyle};
8-
use rustc_hir::{ItemKind, Node};
8+
use rustc_hir::{AttrKind, Attribute, ItemKind, Node};
99
use rustc_lexer::TokenKind;
1010
use rustc_lint::LateContext;
1111
use rustc_span::{BytePos, ExpnKind, InnerSpan, Span, SpanData};

clippy_lints/src/doc/include_in_doc_without_cfg.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
use clippy_utils::diagnostics::span_lint_and_sugg;
22
use clippy_utils::source::snippet_opt;
3-
use rustc_ast::{AttrArgs, AttrArgsEq, AttrKind, AttrStyle, Attribute};
3+
use rustc_ast::AttrStyle;
44
use rustc_errors::Applicability;
5+
use rustc_hir::{AttrArgs, AttrKind, Attribute};
56
use rustc_lint::LateContext;
6-
use rustc_span::sym;
77

88
use super::DOC_INCLUDE_WITHOUT_CFG;
99

1010
pub fn check(cx: &LateContext<'_>, attrs: &[Attribute]) {
1111
for attr in attrs {
1212
if !attr.span.from_expansion()
13-
&& let AttrKind::Normal(ref normal) = attr.kind
14-
&& normal.item.path == sym::doc
15-
&& let AttrArgs::Eq { value: AttrArgsEq::Hir(ref meta), .. } = normal.item.args
13+
&& let AttrKind::Normal(ref item) = attr.kind
14+
&& attr.doc_str().is_some()
15+
&& let AttrArgs::Eq { expr: meta, .. } = &item.args
1616
&& !attr.span.contains(meta.span)
1717
// Since the `include_str` is already expanded at this point, we can only take the
1818
// whole attribute snippet and then modify for our suggestion.

clippy_lints/src/doc/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@ use pulldown_cmark::Event::{
1616
};
1717
use pulldown_cmark::Tag::{BlockQuote, CodeBlock, FootnoteDefinition, Heading, Item, Link, Paragraph};
1818
use pulldown_cmark::{BrokenLink, CodeBlockKind, CowStr, Options, TagEnd};
19-
use rustc_ast::ast::Attribute;
2019
use rustc_data_structures::fx::FxHashSet;
2120
use rustc_errors::Applicability;
2221
use rustc_hir::intravisit::{self, Visitor};
23-
use rustc_hir::{AnonConst, Expr, ImplItemKind, ItemKind, Node, Safety, TraitItemKind};
22+
use rustc_hir::{AnonConst, Attribute, Expr, ImplItemKind, ItemKind, Node, Safety, TraitItemKind};
2423
use rustc_lint::{LateContext, LateLintPass, LintContext};
2524
use rustc_middle::hir::nested_filter;
2625
use rustc_middle::lint::in_external_macro;

clippy_lints/src/doc/suspicious_doc_comments.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
2+
use rustc_ast::AttrStyle;
23
use rustc_ast::token::CommentKind;
3-
use rustc_ast::{AttrKind, AttrStyle, Attribute};
44
use rustc_errors::Applicability;
5+
use rustc_hir::Attribute;
56
use rustc_lint::LateContext;
67
use rustc_span::Span;
78

@@ -35,7 +36,7 @@ fn collect_doc_replacements(attrs: &[Attribute]) -> Vec<(Span, String)> {
3536
attrs
3637
.iter()
3738
.filter_map(|attr| {
38-
if let AttrKind::DocComment(com_kind, sym) = attr.kind
39+
if let Some((sym, com_kind)) = attr.doc_str_and_comment_kind()
3940
&& let AttrStyle::Outer = attr.style
4041
&& let Some(com) = sym.as_str().strip_prefix('!')
4142
{

clippy_lints/src/doc/too_long_first_doc_paragraph.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
use rustc_ast::ast::Attribute;
21
use rustc_errors::Applicability;
3-
use rustc_hir::{Item, ItemKind};
2+
use rustc_hir::{Attribute, Item, ItemKind};
43
use rustc_lint::LateContext;
54

65
use clippy_utils::diagnostics::span_lint_and_then;

clippy_lints/src/eta_reduction.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ fn check_inputs(
281281
}
282282

283283
fn check_sig<'tcx>(closure_sig: FnSig<'tcx>, call_sig: FnSig<'tcx>) -> bool {
284-
call_sig.safety == Safety::Safe && !has_late_bound_to_non_late_bound_regions(closure_sig, call_sig)
284+
call_sig.safety.is_safe() && !has_late_bound_to_non_late_bound_regions(closure_sig, call_sig)
285285
}
286286

287287
/// This walks through both signatures and checks for any time a late-bound region is expected by an

clippy_lints/src/functions/misnamed_getters.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use clippy_utils::diagnostics::span_lint_and_then;
22
use clippy_utils::source::snippet;
33
use rustc_errors::Applicability;
44
use rustc_hir::intravisit::FnKind;
5-
use rustc_hir::{Body, ExprKind, FnDecl, ImplicitSelfKind, Safety};
5+
use rustc_hir::{Body, ExprKind, FnDecl, ImplicitSelfKind};
66
use rustc_lint::LateContext;
77
use rustc_middle::ty;
88
use rustc_span::Span;
@@ -34,7 +34,7 @@ pub fn check_fn(cx: &LateContext<'_>, kind: FnKind<'_>, decl: &FnDecl<'_>, body:
3434
ImplicitSelfKind::None => return,
3535
};
3636

37-
let name = if sig.header.safety == Safety::Unsafe {
37+
let name = if sig.header.safety.is_unsafe() {
3838
name.strip_suffix("_unchecked").unwrap_or(name)
3939
} else {
4040
name

clippy_lints/src/functions/must_use.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use hir::FnSig;
2-
use rustc_ast::ast::Attribute;
32
use rustc_errors::Applicability;
43
use rustc_hir::def::Res;
54
use rustc_hir::def_id::DefIdSet;
6-
use rustc_hir::{self as hir, QPath};
5+
use rustc_hir::{self as hir, Attribute, QPath};
76
use rustc_infer::infer::TyCtxtInferExt;
87
use rustc_lint::{LateContext, LintContext};
98
use rustc_middle::lint::in_external_macro;

clippy_lints/src/functions/not_unsafe_ptr_arg_deref.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fn check_raw_ptr<'tcx>(
4242
body: &'tcx hir::Body<'tcx>,
4343
def_id: LocalDefId,
4444
) {
45-
if safety == hir::Safety::Safe && cx.effective_visibilities.is_exported(def_id) {
45+
if safety.is_safe() && cx.effective_visibilities.is_exported(def_id) {
4646
let raw_ptrs = iter_input_pats(decl, body)
4747
.filter_map(|arg| raw_ptr_arg(cx, arg))
4848
.collect::<HirIdSet>();
@@ -58,7 +58,7 @@ fn check_raw_ptr<'tcx>(
5858
},
5959
hir::ExprKind::MethodCall(_, recv, args, _) => {
6060
let def_id = typeck.type_dependent_def_id(e.hir_id).unwrap();
61-
if cx.tcx.fn_sig(def_id).skip_binder().skip_binder().safety == hir::Safety::Unsafe {
61+
if cx.tcx.fn_sig(def_id).skip_binder().skip_binder().safety.is_unsafe() {
6262
check_arg(cx, &raw_ptrs, recv);
6363
for arg in args {
6464
check_arg(cx, &raw_ptrs, arg);

clippy_lints/src/incompatible_msrv.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint;
33
use clippy_utils::is_in_test;
44
use clippy_utils::msrvs::Msrv;
5-
use rustc_attr::{StabilityLevel, StableSince};
5+
use rustc_attr_parsing::{RustcVersion, StabilityLevel, StableSince};
66
use rustc_data_structures::fx::FxHashMap;
77
use rustc_hir::{Expr, ExprKind, HirId};
88
use rustc_lint::{LateContext, LateLintPass};
99
use rustc_middle::ty::TyCtxt;
10-
use rustc_session::{RustcVersion, impl_lint_pass};
10+
use rustc_session::impl_lint_pass;
1111
use rustc_span::def_id::DefId;
1212
use rustc_span::{ExpnKind, Span};
1313

clippy_lints/src/inherent_to_string.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clippy_utils::diagnostics::span_lint_and_help;
22
use clippy_utils::ty::{implements_trait, is_type_lang_item};
33
use clippy_utils::{return_ty, trait_ref_of_method};
4-
use rustc_hir::{GenericParamKind, ImplItem, ImplItemKind, LangItem, Safety};
4+
use rustc_hir::{GenericParamKind, ImplItem, ImplItemKind, LangItem};
55
use rustc_lint::{LateContext, LateLintPass};
66
use rustc_session::declare_lint_pass;
77
use rustc_span::sym;
@@ -95,7 +95,7 @@ impl<'tcx> LateLintPass<'tcx> for InherentToString {
9595
if let ImplItemKind::Fn(ref signature, _) = impl_item.kind
9696
// #11201
9797
&& let header = signature.header
98-
&& header.safety == Safety::Safe
98+
&& header.safety.is_safe()
9999
&& header.abi == Abi::Rust
100100
&& impl_item.ident.name == sym::to_string
101101
&& let decl = signature.decl

clippy_lints/src/large_include_file.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_and_then;
33
use clippy_utils::macros::root_macro_call_first_node;
44
use clippy_utils::source::snippet_opt;
5-
use rustc_ast::{AttrArgs, AttrArgsEq, AttrKind, Attribute, LitKind};
6-
use rustc_hir::{Expr, ExprKind};
5+
use rustc_ast::LitKind;
6+
use rustc_hir::{AttrArgs, AttrKind, Attribute, Expr, ExprKind};
77
use rustc_lint::{LateContext, LateLintPass};
88
use rustc_session::impl_lint_pass;
99
use rustc_span::{Span, sym};
@@ -93,10 +93,10 @@ impl LateLintPass<'_> for LargeIncludeFile {
9393
if !attr.span.from_expansion()
9494
// Currently, rustc limits the usage of macro at the top-level of attributes,
9595
// so we don't need to recurse into each level.
96-
&& let AttrKind::Normal(ref normal) = attr.kind
96+
&& let AttrKind::Normal(ref item) = attr.kind
9797
&& let Some(doc) = attr.doc_str()
9898
&& doc.as_str().len() as u64 > self.max_file_size
99-
&& let AttrArgs::Eq { value: AttrArgsEq::Hir(ref meta), .. } = normal.item.args
99+
&& let AttrArgs::Eq { expr: meta, .. } = &item.args
100100
&& !attr.span.contains(meta.span)
101101
// Since the `include_str` is already expanded at this point, we can only take the
102102
// whole attribute snippet and then modify for our suggestion.

clippy_lints/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ extern crate rustc_abi;
3737
extern crate rustc_arena;
3838
extern crate rustc_ast;
3939
extern crate rustc_ast_pretty;
40-
extern crate rustc_attr;
40+
extern crate rustc_attr_parsing;
4141
extern crate rustc_data_structures;
4242
extern crate rustc_driver;
4343
extern crate rustc_errors;

clippy_lints/src/macro_use.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use clippy_utils::diagnostics::span_lint_hir_and_then;
22
use clippy_utils::source::snippet;
33
use hir::def::{DefKind, Res};
4-
use rustc_ast::ast;
54
use rustc_data_structures::fx::FxHashSet;
65
use rustc_errors::Applicability;
76
use rustc_hir as hir;
@@ -104,7 +103,7 @@ impl LateLintPass<'_> for MacroUseImports {
104103
self.push_unique_macro_pat_ty(cx, item.span);
105104
}
106105
}
107-
fn check_attribute(&mut self, cx: &LateContext<'_>, attr: &ast::Attribute) {
106+
fn check_attribute(&mut self, cx: &LateContext<'_>, attr: &hir::Attribute) {
108107
if attr.span.from_expansion() {
109108
self.push_unique_macro(cx, attr.span);
110109
}

clippy_lints/src/matches/match_like_matches.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ use super::REDUNDANT_PATTERN_MATCHING;
22
use clippy_utils::diagnostics::span_lint_and_sugg;
33
use clippy_utils::source::snippet_with_applicability;
44
use clippy_utils::{is_lint_allowed, is_wild, span_contains_comment};
5-
use rustc_ast::{Attribute, LitKind};
5+
use rustc_ast::LitKind;
66
use rustc_errors::Applicability;
7-
use rustc_hir::{Arm, BorrowKind, Expr, ExprKind, Pat, PatKind, QPath};
7+
use rustc_hir::{Arm, Attribute, BorrowKind, Expr, ExprKind, Pat, PatKind, QPath};
88
use rustc_lint::{LateContext, LintContext};
99
use rustc_middle::ty;
1010
use rustc_span::source_map::Spanned;

0 commit comments

Comments
 (0)