From c613bce0ac1e21722ae8b70f2f80c5312ba75c48 Mon Sep 17 00:00:00 2001 From: Diggory Blake Date: Sun, 6 Jul 2025 20:58:14 +0100 Subject: [PATCH] Restrict sysroot crate imports to those defined in this repo. It's common to import dependencies from the sysroot via `extern crate` rather than use an explicit cargo dependency, when it's necessary to use the same dependency version as used by rustc itself. However, this is dangerous for crates.io crates, since rustc may not pull in the dependency on some targets, or may pull in multiple versions. In both cases, the `extern crate` fails to resolve. To address this, re-export all such dependencies from the appropriate `rustc_*` crates, and use this alias from crates which would otherwise need to use `extern crate`. --- compiler/rustc_codegen_cranelift/src/lib.rs | 4 +- compiler/rustc_codegen_gcc/src/back/lto.rs | 1 + compiler/rustc_codegen_gcc/src/back/write.rs | 1 + compiler/rustc_codegen_gcc/src/consts.rs | 1 + compiler/rustc_codegen_gcc/src/gcc_util.rs | 2 +- compiler/rustc_codegen_gcc/src/lib.rs | 7 +- compiler/rustc_data_structures/src/lib.rs | 1 + compiler/rustc_log/src/lib.rs | 2 + compiler/rustc_resolve/src/rustdoc.rs | 2 + src/librustdoc/clean/auto_trait.rs | 2 +- src/librustdoc/clean/blanket_impl.rs | 2 +- src/librustdoc/clean/cfg/tests.rs | 2 +- src/librustdoc/clean/inline.rs | 2 +- src/librustdoc/clean/mod.rs | 2 +- src/librustdoc/clean/simplify.rs | 2 +- src/librustdoc/clean/types.rs | 2 +- src/librustdoc/clean/utils.rs | 2 +- src/librustdoc/html/markdown.rs | 6 +- src/librustdoc/html/markdown/footnotes.rs | 2 +- src/librustdoc/html/render/search_index.rs | 2 +- src/librustdoc/json/conversions.rs | 2 +- src/librustdoc/lib.rs | 3 - .../passes/collect_intra_doc_links.rs | 2 +- src/librustdoc/passes/lint/bare_urls.rs | 2 +- src/librustdoc/passes/lint/html_tags.rs | 2 +- .../passes/lint/redundant_explicit_links.rs | 6 +- .../passes/lint/unescaped_backticks.rs | 2 +- .../clippy_lints/src/doc/broken_link.rs | 2 +- src/tools/clippy/clippy_lints/src/doc/mod.rs | 18 +-- src/tools/clippy/clippy_lints/src/lib.rs | 5 - .../clippy_lints/src/methods/ip_constant.rs | 2 +- .../clippy_lints/src/unnested_or_patterns.rs | 2 +- src/tools/clippy/clippy_utils/src/lib.rs | 3 +- src/tools/clippy/clippy_utils/src/msrvs.rs | 2 +- src/tools/miri/src/bin/log/setup.rs | 5 +- src/tools/miri/src/bin/log/tracing_chrome.rs | 103 +++++------------- src/tools/miri/src/bin/miri.rs | 7 +- .../borrow_tracker/stacked_borrows/stack.rs | 2 +- src/tools/miri/src/concurrency/data_race.rs | 1 + src/tools/miri/src/concurrency/thread.rs | 2 +- src/tools/miri/src/diagnostics.rs | 1 + src/tools/miri/src/intrinsics/simd.rs | 2 +- src/tools/miri/src/lib.rs | 7 +- src/tools/miri/src/provenance_gc.rs | 2 +- src/tools/rustfmt/src/chains.rs | 2 +- src/tools/rustfmt/src/closures.rs | 2 +- src/tools/rustfmt/src/lib.rs | 1 - src/tools/rustfmt/src/modules.rs | 2 +- src/tools/rustfmt/src/parse/parser.rs | 2 +- tests/ui-fulldeps/pprust-expr-roundtrip.rs | 6 +- 50 files changed, 97 insertions(+), 150 deletions(-) diff --git a/compiler/rustc_codegen_cranelift/src/lib.rs b/compiler/rustc_codegen_cranelift/src/lib.rs index 8e34436fb5e0a..39a5368188ad6 100644 --- a/compiler/rustc_codegen_cranelift/src/lib.rs +++ b/compiler/rustc_codegen_cranelift/src/lib.rs @@ -26,13 +26,12 @@ extern crate rustc_fs_util; extern crate rustc_hir; extern crate rustc_incremental; extern crate rustc_index; +extern crate rustc_log; extern crate rustc_metadata; extern crate rustc_session; extern crate rustc_span; extern crate rustc_symbol_mangling; extern crate rustc_target; -#[macro_use] -extern crate tracing; // This prevents duplicating functions and statics that are already part of the host rustc process. #[allow(unused_extern_crates)] @@ -46,6 +45,7 @@ use cranelift_codegen::isa::TargetIsa; use cranelift_codegen::settings::{self, Configurable}; use rustc_codegen_ssa::traits::CodegenBackend; use rustc_codegen_ssa::{CodegenResults, TargetConfig}; +use rustc_log::tracing::info; use rustc_middle::dep_graph::{WorkProduct, WorkProductId}; use rustc_session::Session; use rustc_session::config::OutputFilenames; diff --git a/compiler/rustc_codegen_gcc/src/back/lto.rs b/compiler/rustc_codegen_gcc/src/back/lto.rs index 10fce860b7770..ffbfe42e42cb1 100644 --- a/compiler/rustc_codegen_gcc/src/back/lto.rs +++ b/compiler/rustc_codegen_gcc/src/back/lto.rs @@ -32,6 +32,7 @@ use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, looks_like_rust_object_file}; use rustc_data_structures::memmap::Mmap; use rustc_errors::{DiagCtxtHandle, FatalError}; use rustc_hir::def_id::LOCAL_CRATE; +use rustc_log::tracing::info; use rustc_middle::bug; use rustc_middle::dep_graph::WorkProduct; use rustc_middle::middle::exported_symbols::{SymbolExportInfo, SymbolExportLevel}; diff --git a/compiler/rustc_codegen_gcc/src/back/write.rs b/compiler/rustc_codegen_gcc/src/back/write.rs index d03d063bdace6..d78ecd0f8acf7 100644 --- a/compiler/rustc_codegen_gcc/src/back/write.rs +++ b/compiler/rustc_codegen_gcc/src/back/write.rs @@ -6,6 +6,7 @@ use rustc_codegen_ssa::back::write::{BitcodeSection, CodegenContext, EmitObj, Mo use rustc_codegen_ssa::{CompiledModule, ModuleCodegen}; use rustc_errors::DiagCtxtHandle; use rustc_fs_util::link_or_copy; +use rustc_log::tracing::debug; use rustc_session::config::OutputType; use rustc_span::fatal_error::FatalError; use rustc_target::spec::SplitDebuginfo; diff --git a/compiler/rustc_codegen_gcc/src/consts.rs b/compiler/rustc_codegen_gcc/src/consts.rs index b43f9b24c6a31..eda7a0adfeccc 100644 --- a/compiler/rustc_codegen_gcc/src/consts.rs +++ b/compiler/rustc_codegen_gcc/src/consts.rs @@ -6,6 +6,7 @@ use rustc_codegen_ssa::traits::{ BaseTypeCodegenMethods, ConstCodegenMethods, StaticCodegenMethods, }; use rustc_hir::def::DefKind; +use rustc_log::tracing::trace; use rustc_middle::middle::codegen_fn_attrs::{CodegenFnAttrFlags, CodegenFnAttrs}; use rustc_middle::mir::interpret::{ self, ConstAllocation, ErrorHandled, Scalar as InterpScalar, read_target_uint, diff --git a/compiler/rustc_codegen_gcc/src/gcc_util.rs b/compiler/rustc_codegen_gcc/src/gcc_util.rs index 42ba40692b75c..702704ddf1369 100644 --- a/compiler/rustc_codegen_gcc/src/gcc_util.rs +++ b/compiler/rustc_codegen_gcc/src/gcc_util.rs @@ -1,8 +1,8 @@ #[cfg(feature = "master")] use gccjit::Context; use rustc_codegen_ssa::target_features; +use rustc_data_structures::smallvec::{SmallVec, smallvec}; use rustc_session::Session; -use smallvec::{SmallVec, smallvec}; fn gcc_features_by_flags(sess: &Session, features: &mut Vec) { target_features::retpoline_features_by_flags(sess, features); diff --git a/compiler/rustc_codegen_gcc/src/lib.rs b/compiler/rustc_codegen_gcc/src/lib.rs index 1a6eec0ed0bf9..cdc270850d316 100644 --- a/compiler/rustc_codegen_gcc/src/lib.rs +++ b/compiler/rustc_codegen_gcc/src/lib.rs @@ -26,12 +26,6 @@ #![deny(clippy::pattern_type_mismatch)] #![allow(clippy::needless_lifetimes, clippy::uninlined_format_args)] -// These crates are pulled from the sysroot because they are part of -// rustc's public API, so we need to ensure version compatibility. -extern crate smallvec; -#[macro_use] -extern crate tracing; - // The rustc crates we need extern crate rustc_abi; extern crate rustc_apfloat; @@ -46,6 +40,7 @@ extern crate rustc_hir; extern crate rustc_index; #[cfg(feature = "master")] extern crate rustc_interface; +extern crate rustc_log; extern crate rustc_macros; extern crate rustc_middle; extern crate rustc_session; diff --git a/compiler/rustc_data_structures/src/lib.rs b/compiler/rustc_data_structures/src/lib.rs index 53178d09348d9..3ddce12198d17 100644 --- a/compiler/rustc_data_structures/src/lib.rs +++ b/compiler/rustc_data_structures/src/lib.rs @@ -43,6 +43,7 @@ use std::fmt; pub use atomic_ref::AtomicRef; pub use ena::{snapshot_vec, undo_log, unify}; pub use rustc_index::static_assert_size; +pub use {either, indexmap, smallvec, thin_vec}; pub mod aligned; pub mod base_n; diff --git a/compiler/rustc_log/src/lib.rs b/compiler/rustc_log/src/lib.rs index df648bbd48951..2cb5fe70d3f9c 100644 --- a/compiler/rustc_log/src/lib.rs +++ b/compiler/rustc_log/src/lib.rs @@ -44,6 +44,8 @@ use tracing_subscriber::fmt::FmtContext; use tracing_subscriber::fmt::format::{self, FormatEvent, FormatFields}; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::{Layer, Registry}; +// Re-export tracing +pub use {tracing, tracing_subscriber}; /// The values of all the environment variables that matter for configuring a logger. /// Errors are explicitly preserved so that we can share error handling. diff --git a/compiler/rustc_resolve/src/rustdoc.rs b/compiler/rustc_resolve/src/rustdoc.rs index f61cd1f0adfb8..ca7e8c0c7c78c 100644 --- a/compiler/rustc_resolve/src/rustdoc.rs +++ b/compiler/rustc_resolve/src/rustdoc.rs @@ -2,6 +2,8 @@ use std::mem; use std::ops::Range; use itertools::Itertools; +/// Re-export the markdown parser used by rustdoc. +pub use pulldown_cmark; use pulldown_cmark::{ BrokenLink, BrokenLinkCallback, CowStr, Event, LinkType, Options, Parser, Tag, }; diff --git a/src/librustdoc/clean/auto_trait.rs b/src/librustdoc/clean/auto_trait.rs index a91ea55bcae68..1049e700095e1 100644 --- a/src/librustdoc/clean/auto_trait.rs +++ b/src/librustdoc/clean/auto_trait.rs @@ -1,4 +1,5 @@ use rustc_data_structures::fx::{FxIndexMap, FxIndexSet, IndexEntry}; +use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; use rustc_infer::infer::region_constraints::{Constraint, RegionConstraintData}; use rustc_middle::bug; @@ -6,7 +7,6 @@ use rustc_middle::ty::{self, Region, Ty, fold_regions}; use rustc_span::def_id::DefId; use rustc_span::symbol::{Symbol, kw}; use rustc_trait_selection::traits::auto_trait::{self, RegionTarget}; -use thin_vec::ThinVec; use tracing::{debug, instrument}; use crate::clean::{ diff --git a/src/librustdoc/clean/blanket_impl.rs b/src/librustdoc/clean/blanket_impl.rs index 11d5b472d738b..100e07fc7bd83 100644 --- a/src/librustdoc/clean/blanket_impl.rs +++ b/src/librustdoc/clean/blanket_impl.rs @@ -1,3 +1,4 @@ +use rustc_data_structures::thin_vec::ThinVec; use rustc_hir as hir; use rustc_infer::infer::{DefineOpaqueTypes, InferOk, TyCtxtInferExt}; use rustc_infer::traits; @@ -5,7 +6,6 @@ use rustc_middle::ty::{self, TypingMode, Upcast}; use rustc_span::DUMMY_SP; use rustc_span::def_id::DefId; use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt; -use thin_vec::ThinVec; use tracing::{debug, instrument, trace}; use crate::clean; diff --git a/src/librustdoc/clean/cfg/tests.rs b/src/librustdoc/clean/cfg/tests.rs index 26dc101e4b590..f0591295da644 100644 --- a/src/librustdoc/clean/cfg/tests.rs +++ b/src/librustdoc/clean/cfg/tests.rs @@ -1,8 +1,8 @@ use rustc_ast::ast::LitIntType; use rustc_ast::{MetaItemInner, MetaItemLit, Path, Safety, StrStyle}; +use rustc_data_structures::thin_vec::thin_vec; use rustc_span::symbol::{Ident, kw}; use rustc_span::{DUMMY_SP, create_default_session_globals_then}; -use thin_vec::thin_vec; use super::*; diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 96199cb972a86..5a52861b38170 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -4,6 +4,7 @@ use std::iter::once; use std::sync::Arc; use rustc_data_structures::fx::FxHashSet; +use rustc_data_structures::thin_vec::{ThinVec, thin_vec}; use rustc_hir as hir; use rustc_hir::Mutability; use rustc_hir::def::{DefKind, Res}; @@ -14,7 +15,6 @@ use rustc_middle::ty::{self, TyCtxt}; use rustc_span::def_id::LOCAL_CRATE; use rustc_span::hygiene::MacroKind; use rustc_span::symbol::{Symbol, sym}; -use thin_vec::{ThinVec, thin_vec}; use tracing::{debug, trace}; use super::{Item, extract_cfg_from_attrs}; diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 5cd5c434521c0..11586f8e0bfe4 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -37,6 +37,7 @@ use std::mem; use rustc_ast::token::{Token, TokenKind}; use rustc_ast::tokenstream::{TokenStream, TokenTree}; use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, FxIndexSet, IndexEntry}; +use rustc_data_structures::thin_vec::ThinVec; use rustc_errors::codes::*; use rustc_errors::{FatalError, struct_span_code_err}; use rustc_hir::def::{CtorKind, DefKind, Res}; @@ -52,7 +53,6 @@ use rustc_span::ExpnKind; use rustc_span::hygiene::{AstPass, MacroKind}; use rustc_span::symbol::{Ident, Symbol, kw, sym}; use rustc_trait_selection::traits::wf::object_region_bounds; -use thin_vec::ThinVec; use tracing::{debug, instrument}; use utils::*; use {rustc_ast as ast, rustc_hir as hir}; diff --git a/src/librustdoc/clean/simplify.rs b/src/librustdoc/clean/simplify.rs index f813e6c5517d8..6fb878ea54856 100644 --- a/src/librustdoc/clean/simplify.rs +++ b/src/librustdoc/clean/simplify.rs @@ -12,9 +12,9 @@ //! bounds by special casing scenarios such as these. Fun! use rustc_data_structures::fx::FxIndexMap; +use rustc_data_structures::thin_vec::ThinVec; use rustc_data_structures::unord::UnordSet; use rustc_hir::def_id::DefId; -use thin_vec::ThinVec; use crate::clean; use crate::clean::{GenericArgs as PP, WherePredicate as WP}; diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index a05aab22f1e16..4098e07f22d88 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -10,6 +10,7 @@ use rustc_attr_data_structures::{ AttributeKind, ConstStability, Deprecation, Stability, StableSince, find_attr, }; use rustc_data_structures::fx::{FxHashSet, FxIndexMap, FxIndexSet}; +use rustc_data_structures::thin_vec::ThinVec; use rustc_hir::def::{CtorKind, DefKind, Res}; use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE, LocalDefId}; use rustc_hir::lang_items::LangItem; @@ -26,7 +27,6 @@ use rustc_session::Session; use rustc_span::hygiene::MacroKind; use rustc_span::symbol::{Symbol, kw, sym}; use rustc_span::{DUMMY_SP, FileName, Loc}; -use thin_vec::ThinVec; use tracing::{debug, trace}; use {rustc_ast as ast, rustc_hir as hir}; diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index bf3f7607274df..e7a5abd9a6452 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -4,13 +4,13 @@ use std::sync::LazyLock as Lazy; use std::{ascii, mem}; use rustc_ast::tokenstream::TokenTree; +use rustc_data_structures::thin_vec::{ThinVec, thin_vec}; use rustc_hir::def::{DefKind, Res}; use rustc_hir::def_id::{DefId, LOCAL_CRATE, LocalDefId}; use rustc_metadata::rendered_const; use rustc_middle::mir; use rustc_middle::ty::{self, GenericArgKind, GenericArgsRef, TyCtxt, TypeVisitableExt}; use rustc_span::symbol::{Symbol, kw, sym}; -use thin_vec::{ThinVec, thin_vec}; use tracing::{debug, warn}; use {rustc_ast as ast, rustc_hir as hir}; diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index e41435de29c6d..d3622998a4e76 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -36,15 +36,15 @@ use std::str::{self, CharIndices}; use std::sync::atomic::AtomicUsize; use std::sync::{Arc, Weak}; -use pulldown_cmark::{ - BrokenLink, CodeBlockKind, CowStr, Event, LinkType, Options, Parser, Tag, TagEnd, html, -}; use rustc_data_structures::fx::{FxHashMap, FxIndexMap}; use rustc_errors::{Diag, DiagMessage}; use rustc_hir::def_id::LocalDefId; use rustc_middle::ty::TyCtxt; pub(crate) use rustc_resolve::rustdoc::main_body_opts; use rustc_resolve::rustdoc::may_be_doc_link; +use rustc_resolve::rustdoc::pulldown_cmark::{ + self, BrokenLink, CodeBlockKind, CowStr, Event, LinkType, Options, Parser, Tag, TagEnd, html, +}; use rustc_span::edition::Edition; use rustc_span::{Span, Symbol}; use tracing::{debug, trace}; diff --git a/src/librustdoc/html/markdown/footnotes.rs b/src/librustdoc/html/markdown/footnotes.rs index 7ee012c4da239..783dff4513334 100644 --- a/src/librustdoc/html/markdown/footnotes.rs +++ b/src/librustdoc/html/markdown/footnotes.rs @@ -4,8 +4,8 @@ use std::fmt::Write as _; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::{Arc, Weak}; -use pulldown_cmark::{CowStr, Event, Tag, TagEnd, html}; use rustc_data_structures::fx::FxIndexMap; +use rustc_resolve::rustdoc::pulldown_cmark::{CowStr, Event, Tag, TagEnd, html}; use super::SpannedEvent; diff --git a/src/librustdoc/html/render/search_index.rs b/src/librustdoc/html/render/search_index.rs index aff8684ee3a09..8585a12293419 100644 --- a/src/librustdoc/html/render/search_index.rs +++ b/src/librustdoc/html/render/search_index.rs @@ -5,12 +5,12 @@ use std::collections::{BTreeMap, VecDeque}; use encode::{bitmap_to_string, write_vlqhex_to_string}; use rustc_data_structures::fx::{FxHashMap, FxIndexMap}; +use rustc_data_structures::thin_vec::ThinVec; use rustc_middle::ty::TyCtxt; use rustc_span::def_id::DefId; use rustc_span::sym; use rustc_span::symbol::{Symbol, kw}; use serde::ser::{Serialize, SerializeSeq, SerializeStruct, Serializer}; -use thin_vec::ThinVec; use tracing::instrument; use crate::clean::types::{Function, Generics, ItemId, Type, WherePredicate}; diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index f51b35097f66a..d3398204a5066 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -7,13 +7,13 @@ use rustc_abi::ExternAbi; use rustc_ast::ast; use rustc_attr_data_structures::{self as attrs, DeprecatedSince}; +use rustc_data_structures::thin_vec::ThinVec; use rustc_hir::def::CtorKind; use rustc_hir::def_id::DefId; use rustc_metadata::rendered_const; use rustc_middle::{bug, ty}; use rustc_span::{Pos, kw, sym}; use rustdoc_json_types::*; -use thin_vec::ThinVec; use crate::clean::{self, ItemId}; use crate::formats::item_type::ItemType; diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index a3cdc4f687f2d..ecf4afca1fb1b 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -18,8 +18,6 @@ #![warn(rustc::internal)] // tidy-alphabetical-end -extern crate thin_vec; - // N.B. these need `extern crate` even in 2018 edition // because they're loaded implicitly from the sysroot. // The reason they're loaded from the sysroot is because @@ -28,7 +26,6 @@ extern crate thin_vec; // // Dependencies listed in Cargo.toml do not need `extern crate`. -extern crate pulldown_cmark; extern crate rustc_abi; extern crate rustc_ast; extern crate rustc_ast_pretty; diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index ca6f67eb6dfd6..876c6bb150393 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -7,7 +7,6 @@ use std::fmt::Display; use std::mem; use std::ops::Range; -use pulldown_cmark::LinkType; use rustc_ast::util::comments::may_have_doc_links; use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, FxIndexSet}; use rustc_data_structures::intern::Interned; @@ -18,6 +17,7 @@ use rustc_hir::def_id::{CRATE_DEF_ID, DefId, LOCAL_CRATE}; use rustc_hir::{Mutability, Safety}; use rustc_middle::ty::{Ty, TyCtxt}; use rustc_middle::{bug, span_bug, ty}; +use rustc_resolve::rustdoc::pulldown_cmark::LinkType; use rustc_resolve::rustdoc::{ MalformedGenerics, has_primitive_or_keyword_docs, prepare_to_doc_link_resolution, source_span_for_markdown_range, strip_generics_from_path, diff --git a/src/librustdoc/passes/lint/bare_urls.rs b/src/librustdoc/passes/lint/bare_urls.rs index f70bdf4e4fe37..c99ab52c4a9b2 100644 --- a/src/librustdoc/passes/lint/bare_urls.rs +++ b/src/librustdoc/passes/lint/bare_urls.rs @@ -5,10 +5,10 @@ use core::ops::Range; use std::mem; use std::sync::LazyLock; -use pulldown_cmark::{Event, Parser, Tag}; use regex::Regex; use rustc_errors::Applicability; use rustc_hir::HirId; +use rustc_resolve::rustdoc::pulldown_cmark::{Event, Parser, Tag}; use rustc_resolve::rustdoc::source_span_for_markdown_range; use tracing::trace; diff --git a/src/librustdoc/passes/lint/html_tags.rs b/src/librustdoc/passes/lint/html_tags.rs index 19cf15d40a3b4..3868be5393dad 100644 --- a/src/librustdoc/passes/lint/html_tags.rs +++ b/src/librustdoc/passes/lint/html_tags.rs @@ -4,8 +4,8 @@ use std::iter::Peekable; use std::ops::Range; use std::str::CharIndices; -use pulldown_cmark::{BrokenLink, Event, LinkType, Parser, Tag, TagEnd}; use rustc_hir::HirId; +use rustc_resolve::rustdoc::pulldown_cmark::{BrokenLink, Event, LinkType, Parser, Tag, TagEnd}; use rustc_resolve::rustdoc::source_span_for_markdown_range; use crate::clean::*; diff --git a/src/librustdoc/passes/lint/redundant_explicit_links.rs b/src/librustdoc/passes/lint/redundant_explicit_links.rs index 5757b6a974081..7614c88eced59 100644 --- a/src/librustdoc/passes/lint/redundant_explicit_links.rs +++ b/src/librustdoc/passes/lint/redundant_explicit_links.rs @@ -1,13 +1,13 @@ use std::ops::Range; -use pulldown_cmark::{ - BrokenLink, BrokenLinkCallback, CowStr, Event, LinkType, OffsetIter, Parser, Tag, -}; use rustc_ast::NodeId; use rustc_errors::SuggestionStyle; use rustc_hir::HirId; use rustc_hir::def::{DefKind, DocLinkResMap, Namespace, Res}; use rustc_lint_defs::Applicability; +use rustc_resolve::rustdoc::pulldown_cmark::{ + BrokenLink, BrokenLinkCallback, CowStr, Event, LinkType, OffsetIter, Parser, Tag, +}; use rustc_resolve::rustdoc::{prepare_to_doc_link_resolution, source_span_for_markdown_range}; use rustc_span::Symbol; use rustc_span::def_id::DefId; diff --git a/src/librustdoc/passes/lint/unescaped_backticks.rs b/src/librustdoc/passes/lint/unescaped_backticks.rs index 7f5643f4ba814..b791e024545fd 100644 --- a/src/librustdoc/passes/lint/unescaped_backticks.rs +++ b/src/librustdoc/passes/lint/unescaped_backticks.rs @@ -2,10 +2,10 @@ use std::ops::Range; -use pulldown_cmark::{BrokenLink, Event, Parser}; use rustc_errors::Diag; use rustc_hir::HirId; use rustc_lint_defs::Applicability; +use rustc_resolve::rustdoc::pulldown_cmark::{BrokenLink, Event, Parser}; use rustc_resolve::rustdoc::source_span_for_markdown_range; use crate::clean::Item; diff --git a/src/tools/clippy/clippy_lints/src/doc/broken_link.rs b/src/tools/clippy/clippy_lints/src/doc/broken_link.rs index 4af10510023d3..022ec0ba99b11 100644 --- a/src/tools/clippy/clippy_lints/src/doc/broken_link.rs +++ b/src/tools/clippy/clippy_lints/src/doc/broken_link.rs @@ -1,6 +1,6 @@ use clippy_utils::diagnostics::span_lint; -use pulldown_cmark::BrokenLink as PullDownBrokenLink; use rustc_lint::LateContext; +use rustc_resolve::rustdoc::pulldown_cmark::BrokenLink as PullDownBrokenLink; use rustc_resolve::rustdoc::{DocFragment, source_span_for_markdown_range}; use rustc_span::{BytePos, Pos, Span}; diff --git a/src/tools/clippy/clippy_lints/src/doc/mod.rs b/src/tools/clippy/clippy_lints/src/doc/mod.rs index 5ea55e102dfe2..734ef0b1db8ca 100644 --- a/src/tools/clippy/clippy_lints/src/doc/mod.rs +++ b/src/tools/clippy/clippy_lints/src/doc/mod.rs @@ -4,19 +4,21 @@ use clippy_config::Conf; use clippy_utils::attrs::is_doc_hidden; use clippy_utils::diagnostics::{span_lint, span_lint_and_help, span_lint_and_then}; use clippy_utils::{is_entrypoint_fn, is_trait_impl_item}; -use pulldown_cmark::Event::{ - Code, DisplayMath, End, FootnoteReference, HardBreak, Html, InlineHtml, InlineMath, Rule, SoftBreak, Start, - TaskListMarker, Text, -}; -use pulldown_cmark::Tag::{BlockQuote, CodeBlock, FootnoteDefinition, Heading, Item, Link, Paragraph}; -use pulldown_cmark::{BrokenLink, CodeBlockKind, CowStr, Options, TagEnd}; use rustc_data_structures::fx::FxHashSet; use rustc_errors::Applicability; use rustc_hir::{Attribute, ImplItemKind, ItemKind, Node, Safety, TraitItemKind}; use rustc_lint::{EarlyContext, EarlyLintPass, LateContext, LateLintPass, LintContext}; +use rustc_resolve::rustdoc::pulldown_cmark::Event::{ + Code, DisplayMath, End, FootnoteReference, HardBreak, Html, InlineHtml, InlineMath, Rule, SoftBreak, Start, + TaskListMarker, Text, +}; +use rustc_resolve::rustdoc::pulldown_cmark::Tag::{ + BlockQuote, CodeBlock, FootnoteDefinition, Heading, Item, Link, Paragraph, +}; +use rustc_resolve::rustdoc::pulldown_cmark::{BrokenLink, CodeBlockKind, CowStr, Options, TagEnd}; use rustc_resolve::rustdoc::{ - DocFragment, add_doc_fragment, attrs_to_doc_fragments, main_body_opts, source_span_for_markdown_range, - span_of_fragments, + DocFragment, add_doc_fragment, attrs_to_doc_fragments, main_body_opts, pulldown_cmark, + source_span_for_markdown_range, span_of_fragments, }; use rustc_session::impl_lint_pass; use rustc_span::Span; diff --git a/src/tools/clippy/clippy_lints/src/lib.rs b/src/tools/clippy/clippy_lints/src/lib.rs index 96a6dee58852b..63328bdecd799 100644 --- a/src/tools/clippy/clippy_lints/src/lib.rs +++ b/src/tools/clippy/clippy_lints/src/lib.rs @@ -28,9 +28,6 @@ rustc::internal )] -// FIXME: switch to something more ergonomic here, once available. -// (Currently there is no way to opt into sysroot crates without `extern crate`.) -extern crate pulldown_cmark; extern crate rustc_abi; extern crate rustc_arena; extern crate rustc_ast; @@ -55,8 +52,6 @@ extern crate rustc_session; extern crate rustc_span; extern crate rustc_target; extern crate rustc_trait_selection; -extern crate smallvec; -extern crate thin_vec; #[macro_use] extern crate clippy_utils; diff --git a/src/tools/clippy/clippy_lints/src/methods/ip_constant.rs b/src/tools/clippy/clippy_lints/src/methods/ip_constant.rs index 83803fba6a130..ab59431b55492 100644 --- a/src/tools/clippy/clippy_lints/src/methods/ip_constant.rs +++ b/src/tools/clippy/clippy_lints/src/methods/ip_constant.rs @@ -1,10 +1,10 @@ use clippy_utils::consts::{ConstEvalCtxt, Constant}; use clippy_utils::diagnostics::span_lint_and_then; +use rustc_data_structures::smallvec::SmallVec; use rustc_errors::Applicability; use rustc_hir::{Expr, ExprKind, QPath, Ty, TyKind}; use rustc_lint::LateContext; use rustc_span::sym; -use smallvec::SmallVec; use super::IP_CONSTANT; diff --git a/src/tools/clippy/clippy_lints/src/unnested_or_patterns.rs b/src/tools/clippy/clippy_lints/src/unnested_or_patterns.rs index bd8420917f5e6..ef1afebb6c536 100644 --- a/src/tools/clippy/clippy_lints/src/unnested_or_patterns.rs +++ b/src/tools/clippy/clippy_lints/src/unnested_or_patterns.rs @@ -10,13 +10,13 @@ use rustc_ast::mut_visit::*; use rustc_ast::ptr::P; use rustc_ast::{self as ast, DUMMY_NODE_ID, Mutability, Pat, PatKind}; use rustc_ast_pretty::pprust; +use rustc_data_structures::thin_vec::{ThinVec, thin_vec}; use rustc_errors::Applicability; use rustc_lint::{EarlyContext, EarlyLintPass}; use rustc_session::impl_lint_pass; use rustc_span::DUMMY_SP; use std::cell::Cell; use std::mem; -use thin_vec::{ThinVec, thin_vec}; declare_clippy_lint! { /// ### What it does diff --git a/src/tools/clippy/clippy_utils/src/lib.rs b/src/tools/clippy/clippy_utils/src/lib.rs index c01f0ffaac9a0..e9bea25e868f6 100644 --- a/src/tools/clippy/clippy_utils/src/lib.rs +++ b/src/tools/clippy/clippy_utils/src/lib.rs @@ -25,7 +25,6 @@ // FIXME: switch to something more ergonomic here, once available. // (Currently there is no way to opt into sysroot crates without `extern crate`.) -extern crate indexmap; extern crate rustc_abi; extern crate rustc_ast; extern crate rustc_attr_data_structures; @@ -48,7 +47,6 @@ extern crate rustc_mir_dataflow; extern crate rustc_session; extern crate rustc_span; extern crate rustc_trait_selection; -extern crate smallvec; pub mod ast_utils; pub mod attrs; @@ -91,6 +89,7 @@ use rustc_abi::Integer; use rustc_ast::ast::{self, LitKind, RangeLimits}; use rustc_attr_data_structures::{AttributeKind, find_attr}; use rustc_data_structures::fx::FxHashMap; +use rustc_data_structures::indexmap; use rustc_data_structures::packed::Pu128; use rustc_data_structures::unhash::UnindexMap; use rustc_hir::LangItem::{OptionNone, OptionSome, ResultErr, ResultOk}; diff --git a/src/tools/clippy/clippy_utils/src/msrvs.rs b/src/tools/clippy/clippy_utils/src/msrvs.rs index 7a0bef1a9bbbf..b9716dde8219a 100644 --- a/src/tools/clippy/clippy_utils/src/msrvs.rs +++ b/src/tools/clippy/clippy_utils/src/msrvs.rs @@ -3,11 +3,11 @@ use rustc_ast::Attribute; use rustc_ast::attr::AttributeExt; use rustc_attr_data_structures::RustcVersion; use rustc_attr_parsing::parse_version; +use rustc_data_structures::smallvec::SmallVec; use rustc_lint::LateContext; use rustc_session::Session; use rustc_span::Symbol; use serde::Deserialize; -use smallvec::SmallVec; use std::iter::once; use std::sync::atomic::{AtomicBool, Ordering}; diff --git a/src/tools/miri/src/bin/log/setup.rs b/src/tools/miri/src/bin/log/setup.rs index da0ba528b2c4d..8db6183a8487e 100644 --- a/src/tools/miri/src/bin/log/setup.rs +++ b/src/tools/miri/src/bin/log/setup.rs @@ -2,6 +2,7 @@ use std::env::{self, VarError}; use std::str::FromStr; use std::sync::{Mutex, OnceLock}; +use rustc_log::tracing; use rustc_middle::ty::TyCtxt; use rustc_session::{CtfeBacktrace, EarlyDiagCtxt}; @@ -72,8 +73,8 @@ fn init_logger_once(early_dcx: &EarlyDiagCtxt) { early_dcx, rustc_logger_config(), || { - tracing_subscriber::layer::SubscriberExt::with( - tracing_subscriber::Registry::default(), + rustc_log::tracing_subscriber::layer::SubscriberExt::with( + rustc_log::tracing_subscriber::Registry::default(), chrome_layer, ) }, diff --git a/src/tools/miri/src/bin/log/tracing_chrome.rs b/src/tools/miri/src/bin/log/tracing_chrome.rs index 459acea6f0bf7..705b048d32e1a 100644 --- a/src/tools/miri/src/bin/log/tracing_chrome.rs +++ b/src/tools/miri/src/bin/log/tracing_chrome.rs @@ -14,30 +14,21 @@ // should not be included if the "tracing" feature is disabled. extern crate tracing_core; -use tracing_core::{field::Field, span, Event, Subscriber}; -use tracing_subscriber::{ - layer::Context, - registry::{LookupSpan, SpanRef}, - Layer, -}; - -use serde_json::{json, Value as JsonValue}; -use std::{ - marker::PhantomData, - path::Path, - sync::{ - atomic::{AtomicUsize, Ordering}, - Arc, Mutex, - }, -}; - +use std::cell::{Cell, RefCell}; use std::io::{BufWriter, Write}; -use std::sync::mpsc; +use std::marker::PhantomData; +use std::path::Path; +use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::mpsc::Sender; -use std::{ - cell::{Cell, RefCell}, - thread::JoinHandle, -}; +use std::sync::{Arc, Mutex, mpsc}; +use std::thread::JoinHandle; + +use rustc_log::tracing_subscriber::Layer; +use rustc_log::tracing_subscriber::layer::Context; +use rustc_log::tracing_subscriber::registry::{LookupSpan, SpanRef}; +use serde_json::{Value as JsonValue, json}; +use tracing_core::field::Field; +use tracing_core::{Event, Subscriber, span}; thread_local! { static OUT: RefCell>> = const { RefCell::new(None) }; @@ -285,10 +276,7 @@ fn create_default_writer() -> Box { Box::new( std::fs::File::create(format!( "./trace-{}.json", - std::time::SystemTime::UNIX_EPOCH - .elapsed() - .unwrap() - .as_micros() + std::time::SystemTime::UNIX_EPOCH.elapsed().unwrap().as_micros() )) .expect("Failed to create trace file."), ) @@ -302,9 +290,7 @@ where let (tx, rx) = mpsc::channel(); OUT.with(|val| val.replace(Some(tx.clone()))); - let out_writer = builder - .out_writer - .unwrap_or_else(|| create_default_writer()); + let out_writer = builder.out_writer.unwrap_or_else(|| create_default_writer()); let handle = std::thread::spawn(move || { let mut write = BufWriter::new(out_writer); @@ -352,14 +338,12 @@ where let (ph, ts, callsite, id) = match &msg { Message::Enter(ts, callsite, None) => ("B", Some(ts), Some(callsite), None), - Message::Enter(ts, callsite, Some(root_id)) => { - ("b", Some(ts), Some(callsite), Some(root_id)) - } + Message::Enter(ts, callsite, Some(root_id)) => + ("b", Some(ts), Some(callsite), Some(root_id)), Message::Event(ts, callsite) => ("i", Some(ts), Some(callsite), None), Message::Exit(ts, callsite, None) => ("E", Some(ts), Some(callsite), None), - Message::Exit(ts, callsite, Some(root_id)) => { - ("e", Some(ts), Some(callsite), Some(root_id)) - } + Message::Exit(ts, callsite, Some(root_id)) => + ("e", Some(ts), Some(callsite), Some(root_id)), Message::NewThread(_tid, _name) => ("M", None, None, None), Message::Flush | Message::Drop | Message::StartNew(_) => { panic!("Was supposed to break by now.") @@ -414,10 +398,7 @@ where write.flush().unwrap(); }); - let guard = FlushGuard { - sender: tx.clone(), - handle: Cell::new(Some(handle)), - }; + let guard = FlushGuard { sender: tx.clone(), handle: Cell::new(Some(handle)) }; let layer = ChromeLayer { out: Arc::new(Mutex::new(tx)), start: std::time::Instant::now(), @@ -456,28 +437,20 @@ where EventOrSpan::Span(s) => s.metadata(), }; let args = match data { - EventOrSpan::Event(e) => { + EventOrSpan::Event(e) => if self.include_args { let mut args = Object::new(); e.record(&mut JsonVisitor { object: &mut args }); Some(Arc::new(args)) } else { None - } - } - EventOrSpan::Span(s) => s - .extensions() - .get::() - .map(|e| &e.args) - .cloned(), + }, + EventOrSpan::Span(s) => s.extensions().get::().map(|e| &e.args).cloned(), }; let name = name.unwrap_or_else(|| meta.name().into()); let target = target.unwrap_or_else(|| meta.target().into()); - let (file, line) = if self.include_locations { - (meta.file(), meta.line()) - } else { - (None, None) - }; + let (file, line) = + if self.include_locations { (meta.file(), meta.line()) } else { (None, None) }; if new_thread { let name = match std::thread::current().name() { @@ -487,24 +460,11 @@ where self.send_message(Message::NewThread(tid, name)); } - Callsite { - tid, - name, - target, - file, - line, - args, - } + Callsite { tid, name, target, file, line, args } } fn get_root_id(span: SpanRef) -> u64 { - span.scope() - .from_root() - .take(1) - .next() - .unwrap_or(span) - .id() - .into_u64() + span.scope().from_root().take(1).next().unwrap_or(span).id().into_u64() } fn enter_span(&self, span: SpanRef, ts: f64) { @@ -587,9 +547,7 @@ where if self.include_args { let mut args = Object::new(); attrs.record(&mut JsonVisitor { object: &mut args }); - ctx.span(id).unwrap().extensions_mut().insert(ArgsWrapper { - args: Arc::new(args), - }); + ctx.span(id).unwrap().extensions_mut().insert(ArgsWrapper { args: Arc::new(args) }); } if let TraceStyle::Threaded = self.trace_style { return; @@ -613,10 +571,9 @@ struct JsonVisitor<'a> { object: &'a mut Object, } -impl<'a> tracing_subscriber::field::Visit for JsonVisitor<'a> { +impl<'a> rustc_log::tracing_subscriber::field::Visit for JsonVisitor<'a> { fn record_debug(&mut self, field: &Field, value: &dyn std::fmt::Debug) { - self.object - .insert(field.name().to_owned(), format!("{value:?}").into()); + self.object.insert(field.name().to_owned(), format!("{value:?}").into()); } } diff --git a/src/tools/miri/src/bin/miri.rs b/src/tools/miri/src/bin/miri.rs index e3b579a4ac61d..e35e2143250c0 100644 --- a/src/tools/miri/src/bin/miri.rs +++ b/src/tools/miri/src/bin/miri.rs @@ -8,11 +8,6 @@ rustc::untranslatable_diagnostic )] -// Some "regular" crates we want to share with rustc -extern crate tracing; -#[cfg(feature = "tracing")] -extern crate tracing_subscriber; - // The rustc crates we need extern crate rustc_abi; extern crate rustc_data_structures; @@ -48,6 +43,7 @@ use rustc_hir::def_id::LOCAL_CRATE; use rustc_hir::{self as hir, Node}; use rustc_hir_analysis::check::check_function_signature; use rustc_interface::interface::Config; +use rustc_log::tracing::debug; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags; use rustc_middle::middle::exported_symbols::{ ExportedSymbol, SymbolExportInfo, SymbolExportKind, SymbolExportLevel, @@ -60,7 +56,6 @@ use rustc_session::EarlyDiagCtxt; use rustc_session::config::{CrateType, ErrorOutputType, OptLevel}; use rustc_session::search_paths::PathKind; use rustc_span::def_id::DefId; -use tracing::debug; use crate::log::setup::{deinit_loggers, init_early_loggers, init_late_loggers}; diff --git a/src/tools/miri/src/borrow_tracker/stacked_borrows/stack.rs b/src/tools/miri/src/borrow_tracker/stacked_borrows/stack.rs index dc3370f125104..fcd6216fc32dc 100644 --- a/src/tools/miri/src/borrow_tracker/stacked_borrows/stack.rs +++ b/src/tools/miri/src/borrow_tracker/stacked_borrows/stack.rs @@ -2,7 +2,7 @@ use std::ops::Range; use rustc_data_structures::fx::FxHashSet; -use tracing::trace; +use rustc_log::tracing::trace; use crate::borrow_tracker::stacked_borrows::{Item, Permission}; use crate::borrow_tracker::{AccessKind, BorTag}; diff --git a/src/tools/miri/src/concurrency/data_race.rs b/src/tools/miri/src/concurrency/data_race.rs index b5e7e9d0ac0d8..604bdb06ae7d0 100644 --- a/src/tools/miri/src/concurrency/data_race.rs +++ b/src/tools/miri/src/concurrency/data_race.rs @@ -48,6 +48,7 @@ use rustc_abi::{Align, HasDataLayout, Size}; use rustc_ast::Mutability; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_index::{Idx, IndexVec}; +use rustc_log::tracing; use rustc_middle::mir; use rustc_middle::ty::Ty; use rustc_span::Span; diff --git a/src/tools/miri/src/concurrency/thread.rs b/src/tools/miri/src/concurrency/thread.rs index 56c197948546c..ae5de3559ca05 100644 --- a/src/tools/miri/src/concurrency/thread.rs +++ b/src/tools/miri/src/concurrency/thread.rs @@ -5,10 +5,10 @@ use std::sync::atomic::Ordering::Relaxed; use std::task::Poll; use std::time::{Duration, SystemTime}; -use either::Either; use rand::seq::IteratorRandom; use rustc_abi::ExternAbi; use rustc_const_eval::CTRL_C_RECEIVED; +use rustc_data_structures::either::Either; use rustc_data_structures::fx::FxHashMap; use rustc_hir::def_id::DefId; use rustc_index::{Idx, IndexVec}; diff --git a/src/tools/miri/src/diagnostics.rs b/src/tools/miri/src/diagnostics.rs index 9ecbd31c5b9f9..4a3d5207eb2c2 100644 --- a/src/tools/miri/src/diagnostics.rs +++ b/src/tools/miri/src/diagnostics.rs @@ -3,6 +3,7 @@ use std::num::NonZero; use rustc_abi::{Align, Size}; use rustc_errors::{Diag, DiagMessage, Level}; +use rustc_log::tracing; use rustc_span::{DUMMY_SP, SpanData, Symbol}; use crate::borrow_tracker::stacked_borrows::diagnostics::TagHistory; diff --git a/src/tools/miri/src/intrinsics/simd.rs b/src/tools/miri/src/intrinsics/simd.rs index e63992aa95f9d..9f075cccd58b6 100644 --- a/src/tools/miri/src/intrinsics/simd.rs +++ b/src/tools/miri/src/intrinsics/simd.rs @@ -1,7 +1,7 @@ -use either::Either; use rand::Rng; use rustc_abi::{Endian, HasDataLayout}; use rustc_apfloat::{Float, Round}; +use rustc_data_structures::either::Either; use rustc_middle::ty::FloatTy; use rustc_middle::{mir, ty}; use rustc_span::{Symbol, sym}; diff --git a/src/tools/miri/src/lib.rs b/src/tools/miri/src/lib.rs index c86e33e518591..e0012b24be1c1 100644 --- a/src/tools/miri/src/lib.rs +++ b/src/tools/miri/src/lib.rs @@ -46,10 +46,6 @@ // Needed for rustdoc from bootstrap (with `-Znormalize-docs`). #![recursion_limit = "256"] -// Some "regular" crates we want to share with rustc -extern crate either; -extern crate tracing; - // The rustc crates we need extern crate rustc_abi; extern crate rustc_apfloat; @@ -60,6 +56,7 @@ extern crate rustc_data_structures; extern crate rustc_errors; extern crate rustc_hir; extern crate rustc_index; +extern crate rustc_log; extern crate rustc_middle; extern crate rustc_session; extern crate rustc_span; @@ -94,8 +91,8 @@ pub use rustc_const_eval::interpret::*; // Resolve ambiguity. #[doc(no_inline)] pub use rustc_const_eval::interpret::{self, AllocMap, Provenance as _}; +use rustc_log::tracing::{info, trace}; use rustc_middle::{bug, span_bug}; -use tracing::{info, trace}; //#[cfg(target_os = "linux")] //pub mod native_lib { diff --git a/src/tools/miri/src/provenance_gc.rs b/src/tools/miri/src/provenance_gc.rs index 6adf14486480d..66b0adb3c4eb3 100644 --- a/src/tools/miri/src/provenance_gc.rs +++ b/src/tools/miri/src/provenance_gc.rs @@ -1,4 +1,4 @@ -use either::Either; +use rustc_data_structures::either::Either; use rustc_data_structures::fx::FxHashSet; use crate::*; diff --git a/src/tools/rustfmt/src/chains.rs b/src/tools/rustfmt/src/chains.rs index 034ecde068a98..70bee41d400f6 100644 --- a/src/tools/rustfmt/src/chains.rs +++ b/src/tools/rustfmt/src/chains.rs @@ -75,7 +75,7 @@ use crate::utils::{ rewrite_ident, trimmed_last_line_width, wrap_str, }; -use thin_vec::ThinVec; +use rustc_data_structures::thin_vec::ThinVec; /// Provides the original input contents from the span /// of a chain element with trailing spaces trimmed. diff --git a/src/tools/rustfmt/src/closures.rs b/src/tools/rustfmt/src/closures.rs index 61e148cdf1884..3d9b349388859 100644 --- a/src/tools/rustfmt/src/closures.rs +++ b/src/tools/rustfmt/src/closures.rs @@ -1,6 +1,6 @@ use rustc_ast::{ast, ptr}; +use rustc_data_structures::thin_vec::thin_vec; use rustc_span::Span; -use thin_vec::thin_vec; use tracing::debug; use crate::attr::get_attrs_from_stmt; diff --git a/src/tools/rustfmt/src/lib.rs b/src/tools/rustfmt/src/lib.rs index 942b42ec5f20c..7c3eec7e5f3c6 100644 --- a/src/tools/rustfmt/src/lib.rs +++ b/src/tools/rustfmt/src/lib.rs @@ -14,7 +14,6 @@ extern crate rustc_expand; extern crate rustc_parse; extern crate rustc_session; extern crate rustc_span; -extern crate thin_vec; // Necessary to pull in object code as the rest of the rustc crates are shipped only as rmeta // files. diff --git a/src/tools/rustfmt/src/modules.rs b/src/tools/rustfmt/src/modules.rs index 44c8123517c56..fb879427c7bfb 100644 --- a/src/tools/rustfmt/src/modules.rs +++ b/src/tools/rustfmt/src/modules.rs @@ -4,9 +4,9 @@ use std::path::{Path, PathBuf}; use rustc_ast::ast; use rustc_ast::visit::Visitor; +use rustc_data_structures::thin_vec::ThinVec; use rustc_span::Span; use rustc_span::symbol::{self, Symbol, sym}; -use thin_vec::ThinVec; use thiserror::Error; use crate::attr::MetaVisitor; diff --git a/src/tools/rustfmt/src/parse/parser.rs b/src/tools/rustfmt/src/parse/parser.rs index f357aed66c2b2..b35c07d1832fd 100644 --- a/src/tools/rustfmt/src/parse/parser.rs +++ b/src/tools/rustfmt/src/parse/parser.rs @@ -6,7 +6,7 @@ use rustc_errors::Diag; use rustc_parse::parser::Parser as RawParser; use rustc_parse::{exp, new_parser_from_file, new_parser_from_source_str, unwrap_or_emit_fatal}; use rustc_span::{Span, sym}; -use thin_vec::ThinVec; +use rustc_data_structures::thin_vec::ThinVec; use crate::Input; use crate::parse::session::ParseSess; diff --git a/tests/ui-fulldeps/pprust-expr-roundtrip.rs b/tests/ui-fulldeps/pprust-expr-roundtrip.rs index 8bca20852add4..e81a0092f623e 100644 --- a/tests/ui-fulldeps/pprust-expr-roundtrip.rs +++ b/tests/ui-fulldeps/pprust-expr-roundtrip.rs @@ -23,10 +23,10 @@ extern crate rustc_ast; extern crate rustc_ast_pretty; +extern crate rustc_data_structures; extern crate rustc_parse; extern crate rustc_session; extern crate rustc_span; -extern crate thin_vec; // Necessary to pull in object code as the rest of the rustc crates are shipped only as rmeta // files. @@ -38,11 +38,11 @@ use rustc_ast::mut_visit::MutVisitor; use rustc_ast::ptr::P; use rustc_ast::*; use rustc_ast_pretty::pprust; +use rustc_data_structures::thin_vec::{ThinVec, thin_vec}; use rustc_session::parse::ParseSess; +use rustc_span::DUMMY_SP; use rustc_span::source_map::Spanned; use rustc_span::symbol::Ident; -use rustc_span::DUMMY_SP; -use thin_vec::{thin_vec, ThinVec}; // Helper functions for building exprs fn expr(kind: ExprKind) -> P {