Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit a22efe7

Browse files
authored
Rollup merge of rust-lang#140874 - mejrs:rads, r=WaffleLapkin
make `rustc_attr_parsing` less dominant in the rustc crate graph It has/had a glob re-export of `rustc_attr_data_structures`, which is a crate much lower in the graph, and a lot of crates were using it *just* (or *mostly*) for that re-export, while they can rely on `rustc_attr_data_structures` directly. Previous graph: ![graph_1](https://github.com/user-attachments/assets/f4a5f13c-4222-4903-b56d-28c83511fcbd) Graph with this PR: ![graph_2](https://github.com/user-attachments/assets/1e053d9c-75cc-402b-84df-86229c98277a) The first commit keeps the re-export, and just changes the dependency if possible. The second commit is the "breaking change" which removes the re-export, and "explicitly" adds the `rustc_attr_data_structures` dependency where needed. It also switches over some src/tools/*. The second commit is actually a lot more involved than I expected. Please let me know if it's a better idea to back it out and just keep the first commit.
2 parents 93bd4d8 + 035146e commit a22efe7

14 files changed

+17
-14
lines changed

clippy_lints/src/approx_const.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ 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;
5+
use rustc_attr_data_structures::RustcVersion;
66
use rustc_hir::{HirId, Lit};
77
use rustc_lint::{LateContext, LateLintPass};
88
use rustc_session::impl_lint_pass;

clippy_lints/src/attrs/repr_attributes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_attr_parsing::{AttributeKind, ReprAttr, find_attr};
1+
use rustc_attr_data_structures::{AttributeKind, ReprAttr, find_attr};
22
use rustc_hir::Attribute;
33
use rustc_lint::LateContext;
44
use rustc_span::Span;

clippy_lints/src/booleans.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use clippy_utils::source::SpanRangeExt;
66
use clippy_utils::sugg::Sugg;
77
use clippy_utils::ty::{implements_trait, is_type_diagnostic_item};
88
use rustc_ast::ast::LitKind;
9-
use rustc_attr_parsing::RustcVersion;
9+
use rustc_attr_data_structures::RustcVersion;
1010
use rustc_errors::Applicability;
1111
use rustc_hir::intravisit::{FnKind, Visitor, walk_expr};
1212
use rustc_hir::{BinOpKind, Body, Expr, ExprKind, FnDecl, UnOp};

clippy_lints/src/default_union_representation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
2-
use rustc_attr_parsing::{AttributeKind, ReprAttr, find_attr};
2+
use rustc_attr_data_structures::{AttributeKind, ReprAttr, find_attr};
33
use rustc_hir::{HirId, Item, ItemKind};
44
use rustc_lint::{LateContext, LateLintPass};
55
use rustc_middle::ty::layout::LayoutOf;

clippy_lints/src/doc/suspicious_doc_comments.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
22
use rustc_ast::AttrStyle;
33
use rustc_ast::token::CommentKind;
4-
use rustc_attr_parsing::AttributeKind;
4+
use rustc_attr_data_structures::AttributeKind;
55
use rustc_errors::Applicability;
66
use rustc_hir::Attribute;
77
use rustc_lint::LateContext;

clippy_lints/src/doc/too_long_first_doc_paragraph.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_attr_parsing::AttributeKind;
1+
use rustc_attr_data_structures::AttributeKind;
22
use rustc_errors::Applicability;
33
use rustc_hir::{Attribute, Item, ItemKind};
44
use rustc_lint::LateContext;

clippy_lints/src/format_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use rustc_ast::{
1515
FormatArgPosition, FormatArgPositionKind, FormatArgsPiece, FormatArgumentKind, FormatCount, FormatOptions,
1616
FormatPlaceholder, FormatTrait,
1717
};
18-
use rustc_attr_parsing::RustcVersion;
18+
use rustc_attr_data_structures::RustcVersion;
1919
use rustc_data_structures::fx::FxHashMap;
2020
use rustc_errors::Applicability;
2121
use rustc_errors::SuggestionStyle::{CompletelyHidden, ShowCode};

clippy_lints/src/incompatible_msrv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ 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_parsing::{RustcVersion, StabilityLevel, StableSince};
5+
use rustc_attr_data_structures::{RustcVersion, StabilityLevel, StableSince};
66
use rustc_data_structures::fx::FxHashMap;
77
use rustc_hir::{Expr, ExprKind, HirId, QPath};
88
use rustc_lint::{LateContext, LateLintPass};

clippy_lints/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ extern crate rustc_abi;
3535
extern crate rustc_arena;
3636
extern crate rustc_ast;
3737
extern crate rustc_ast_pretty;
38-
extern crate rustc_attr_parsing;
38+
extern crate rustc_attr_data_structures;
3939
extern crate rustc_data_structures;
4040
extern crate rustc_driver;
4141
extern crate rustc_errors;

clippy_lints/src/std_instead_of_core.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use clippy_config::Conf;
22
use clippy_utils::diagnostics::span_lint_and_then;
33
use clippy_utils::is_from_proc_macro;
44
use clippy_utils::msrvs::Msrv;
5-
use rustc_attr_parsing::{StabilityLevel, StableSince};
5+
use rustc_attr_data_structures::{StabilityLevel, StableSince};
66
use rustc_errors::Applicability;
77
use rustc_hir::def::Res;
88
use rustc_hir::def_id::DefId;

clippy_lints_internal/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#![allow(clippy::missing_clippy_version_attribute)]
2121

2222
extern crate rustc_ast;
23+
extern crate rustc_attr_data_structures;
2324
extern crate rustc_attr_parsing;
2425
extern crate rustc_data_structures;
2526
extern crate rustc_errors;

clippy_utils/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
// (Currently there is no way to opt into sysroot crates without `extern crate`.)
2828
extern crate rustc_abi;
2929
extern crate rustc_ast;
30+
extern crate rustc_attr_data_structures;
3031
extern crate rustc_attr_parsing;
3132
extern crate rustc_const_eval;
3233
extern crate rustc_data_structures;
@@ -88,7 +89,7 @@ use std::sync::{Mutex, MutexGuard, OnceLock};
8889
use itertools::Itertools;
8990
use rustc_abi::Integer;
9091
use rustc_ast::ast::{self, LitKind, RangeLimits};
91-
use rustc_attr_parsing::{AttributeKind, find_attr};
92+
use rustc_attr_data_structures::{AttributeKind, find_attr};
9293
use rustc_data_structures::fx::FxHashMap;
9394
use rustc_data_structures::packed::Pu128;
9495
use rustc_data_structures::unhash::UnhashMap;

clippy_utils/src/msrvs.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use crate::sym;
22
use rustc_ast::Attribute;
33
use rustc_ast::attr::AttributeExt;
4-
use rustc_attr_parsing::{RustcVersion, parse_version};
4+
use rustc_attr_data_structures::RustcVersion;
5+
use rustc_attr_parsing::parse_version;
56
use rustc_lint::LateContext;
67
use rustc_session::Session;
78
use rustc_span::Symbol;

clippy_utils/src/qualify_min_const_fn.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
use crate::msrvs::{self, Msrv};
77
use hir::LangItem;
8-
use rustc_attr_parsing::{RustcVersion, StableSince};
8+
use rustc_attr_data_structures::{RustcVersion, StableSince};
99
use rustc_const_eval::check_consts::ConstCx;
1010
use rustc_hir as hir;
1111
use rustc_hir::def_id::DefId;
@@ -404,7 +404,7 @@ fn is_stable_const_fn(cx: &LateContext<'_>, def_id: DefId, msrv: Msrv) -> bool {
404404
.and_then(|trait_def_id| cx.tcx.lookup_const_stability(trait_def_id))
405405
})
406406
.is_none_or(|const_stab| {
407-
if let rustc_attr_parsing::StabilityLevel::Stable { since, .. } = const_stab.level {
407+
if let rustc_attr_data_structures::StabilityLevel::Stable { since, .. } = const_stab.level {
408408
// Checking MSRV is manually necessary because `rustc` has no such concept. This entire
409409
// function could be removed if `rustc` provided a MSRV-aware version of `is_stable_const_fn`.
410410
// as a part of an unimplemented MSRV check https://github.com/rust-lang/rust/issues/65262.

0 commit comments

Comments
 (0)