Update cfg(bootstrap)

This commit is contained in:
Josh Stone 2025-06-24 10:05:56 -07:00
parent a58050b753
commit e851e3e16e
29 changed files with 26 additions and 143 deletions

View file

@ -5,10 +5,10 @@
#![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)]
#![cfg_attr(not(bootstrap), feature(autodiff))]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(assert_matches)]
#![feature(autodiff)]
#![feature(box_patterns)]
#![feature(decl_macro)]
#![feature(if_let_guard)]

View file

@ -1,7 +1,6 @@
use std::marker::PointeeSized;
use std::ptr::Alignment;
use rustc_serialize::PointeeSized;
/// Returns the ABI-required minimum alignment of a type in bytes.
///
/// This is equivalent to [`align_of`], but also works for some unsized

View file

@ -4,18 +4,7 @@
//! green/native threading. This is just a bare-bones enough solution for
//! librustdoc, it is not production quality at all.
// cfg(bootstrap)
macro_rules! cfg_select_dispatch {
($($tokens:tt)*) => {
#[cfg(bootstrap)]
cfg_match! { $($tokens)* }
#[cfg(not(bootstrap))]
cfg_select! { $($tokens)* }
};
}
cfg_select_dispatch! {
cfg_select! {
target_os = "linux" => {
mod linux;
use linux as imp;

View file

@ -10,9 +10,6 @@
#![allow(internal_features)]
#![allow(rustc::default_hash_types)]
#![allow(rustc::potential_query_instability)]
#![cfg_attr(bootstrap, feature(cfg_match))]
#![cfg_attr(not(bootstrap), feature(cfg_select))]
#![cfg_attr(not(bootstrap), feature(sized_hierarchy))]
#![deny(unsafe_op_in_unsafe_fn)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
@ -22,6 +19,7 @@
#![feature(ascii_char_variants)]
#![feature(assert_matches)]
#![feature(auto_traits)]
#![feature(cfg_select)]
#![feature(core_intrinsics)]
#![feature(dropck_eyepatch)]
#![feature(extend_one)]
@ -33,6 +31,7 @@
#![feature(ptr_alignment_type)]
#![feature(rustc_attrs)]
#![feature(rustdoc_internals)]
#![feature(sized_hierarchy)]
#![feature(test)]
#![feature(thread_id_value)]
#![feature(type_alias_impl_trait)]
@ -44,9 +43,6 @@ use std::fmt;
pub use atomic_ref::AtomicRef;
pub use ena::{snapshot_vec, undo_log, unify};
pub use rustc_index::static_assert_size;
// re-exported for `rustc_smir`
// FIXME(sized_hierarchy): remove with `cfg(bootstrap)`, see `rustc_serialize/src/lib.rs`
pub use rustc_serialize::PointeeSized;
pub mod aligned;
pub mod base_n;

View file

@ -1,6 +1,5 @@
use std::alloc::Allocator;
use rustc_serialize::PointeeSized;
use std::marker::PointeeSized;
#[diagnostic::on_unimplemented(message = "`{Self}` doesn't implement `DynSend`. \
Add it to `rustc_data_structures::marker` or use `IntoDynSyncSend` if it's already `Send`")]

View file

@ -859,19 +859,8 @@ fn get_thread_id() -> u32 {
std::thread::current().id().as_u64().get() as u32
}
// cfg(bootstrap)
macro_rules! cfg_select_dispatch {
($($tokens:tt)*) => {
#[cfg(bootstrap)]
cfg_match! { $($tokens)* }
#[cfg(not(bootstrap))]
cfg_select! { $($tokens)* }
};
}
// Memory reporting
cfg_select_dispatch! {
cfg_select! {
windows => {
pub fn get_resident_set_size() -> Option<usize> {
use windows::{

View file

@ -6,8 +6,8 @@
#![allow(incomplete_features)]
#![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::direct_use_of_rustc_type_ir)]
#![allow(rustc::untranslatable_diagnostic)]
#![cfg_attr(not(bootstrap), allow(rustc::direct_use_of_rustc_type_ir))]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(array_windows)]

View file

@ -15,8 +15,8 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::direct_use_of_rustc_type_ir)]
#![allow(rustc::untranslatable_diagnostic)]
#![cfg_attr(not(bootstrap), allow(rustc::direct_use_of_rustc_type_ir))]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(assert_matches)]

View file

@ -27,9 +27,8 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::direct_use_of_rustc_type_ir)]
#![allow(rustc::untranslatable_diagnostic)]
#![cfg_attr(not(bootstrap), allow(rustc::direct_use_of_rustc_type_ir))]
#![cfg_attr(not(bootstrap), feature(sized_hierarchy))]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(allocator_api)]
@ -55,6 +54,7 @@
#![feature(round_char_boundary)]
#![feature(rustc_attrs)]
#![feature(rustdoc_internals)]
#![feature(sized_hierarchy)]
#![feature(try_blocks)]
#![feature(try_trait_v2)]
#![feature(try_trait_v2_yeet)]

View file

@ -8,12 +8,12 @@
use std::hash::Hash;
use std::intrinsics;
use std::marker::DiscriminantKind;
use std::marker::{DiscriminantKind, PointeeSized};
use rustc_abi::{FieldIdx, VariantIdx};
use rustc_data_structures::fx::FxHashMap;
use rustc_hir::def_id::LocalDefId;
use rustc_serialize::{Decodable, Encodable, PointeeSized};
use rustc_serialize::{Decodable, Encodable};
use rustc_span::source_map::Spanned;
use rustc_span::{Span, SpanDecoder, SpanEncoder};

View file

@ -10,7 +10,7 @@ use std::cmp::Ordering;
use std::env::VarError;
use std::ffi::OsStr;
use std::hash::{Hash, Hasher};
use std::marker::PhantomData;
use std::marker::{PhantomData, PointeeSized};
use std::ops::{Bound, Deref};
use std::sync::{Arc, OnceLock};
use std::{fmt, iter, mem};
@ -44,7 +44,6 @@ use rustc_macros::{HashStable, TyDecodable, TyEncodable};
use rustc_query_system::cache::WithDepNode;
use rustc_query_system::dep_graph::DepNodeIndex;
use rustc_query_system::ich::StableHashingContext;
use rustc_serialize::PointeeSized;
use rustc_serialize::opaque::{FileEncodeResult, FileEncoder};
use rustc_session::config::CrateType;
use rustc_session::cstore::{CrateStoreDyn, Untracked};

View file

@ -5,9 +5,9 @@
//! So if you got to this crate from the old solver, it's totally normal.
// tidy-alphabetical-start
#![allow(rustc::direct_use_of_rustc_type_ir)]
#![allow(rustc::usage_of_type_ir_inherent)]
#![allow(rustc::usage_of_type_ir_traits)]
#![cfg_attr(not(bootstrap), allow(rustc::direct_use_of_rustc_type_ir))]
// tidy-alphabetical-end
pub mod canonicalizer;

View file

@ -3,7 +3,6 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::internal)]
#![cfg_attr(not(bootstrap), feature(sized_hierarchy))]
#![cfg_attr(test, feature(test))]
#![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
@ -15,6 +14,7 @@
#![feature(min_specialization)]
#![feature(never_type)]
#![feature(rustdoc_internals)]
#![feature(sized_hierarchy)]
// tidy-alphabetical-end
// Allows macros to refer to this crate as `::rustc_serialize`.
@ -28,19 +28,3 @@ mod serialize;
pub mod int_overflow;
pub mod leb128;
pub mod opaque;
// This has nothing to do with `rustc_serialize` but it is convenient to define it in one place
// for the rest of the compiler so that `cfg(bootstrap)` doesn't need to be littered throughout
// the compiler wherever `PointeeSized` would be used. `rustc_serialize` happens to be the deepest
// crate in the crate graph which uses `PointeeSized`.
//
// When bootstrap bumps, remove both the `cfg(not(bootstrap))` and `cfg(bootstrap)` lines below
// and just import `std::marker::PointeeSized` whereever this item was used.
#[cfg(not(bootstrap))]
pub use std::marker::PointeeSized;
#[cfg(bootstrap)]
pub trait PointeeSized {}
#[cfg(bootstrap)]
impl<T: ?Sized> PointeeSized for T {}

View file

@ -4,7 +4,7 @@ use std::borrow::Cow;
use std::cell::{Cell, RefCell};
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque};
use std::hash::{BuildHasher, Hash};
use std::marker::PhantomData;
use std::marker::{PhantomData, PointeeSized};
use std::num::NonZero;
use std::path;
use std::rc::Rc;
@ -164,7 +164,7 @@ pub trait Decoder {
/// `rustc_metadata::rmeta::Lazy`.
/// * `TyEncodable` should be used for types that are only serialized in crate
/// metadata or the incremental cache. This is most types in `rustc_middle`.
pub trait Encodable<S: Encoder>: crate::PointeeSized {
pub trait Encodable<S: Encoder>: PointeeSized {
fn encode(&self, s: &mut S);
}
@ -220,7 +220,7 @@ direct_serialize_impls! {
char emit_char read_char
}
impl<S: Encoder, T: ?Sized + crate::PointeeSized> Encodable<S> for &T
impl<S: Encoder, T: ?Sized + PointeeSized> Encodable<S> for &T
where
T: Encodable<S>,
{

View file

@ -9,13 +9,13 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::usage_of_ty_tykind)]
#![cfg_attr(not(bootstrap), feature(sized_hierarchy))]
#![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
test(attr(allow(unused_variables), deny(warnings)))
)]
#![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![feature(sized_hierarchy)]
// tidy-alphabetical-end
pub mod rustc_internal;

View file

@ -7,9 +7,9 @@
//!
//! For now, we are developing everything inside `rustc`, thus, we keep this module private.
use std::marker::PointeeSized;
use std::ops::RangeInclusive;
use rustc_data_structures::PointeeSized;
use rustc_hir::def::DefKind;
use rustc_middle::mir;
use rustc_middle::mir::interpret::AllocId;

View file

@ -29,18 +29,7 @@ pub(crate) fn analyze_source_file(src: &str) -> (Vec<RelativeBytePos>, Vec<Multi
(lines, multi_byte_chars)
}
// cfg(bootstrap)
macro_rules! cfg_select_dispatch {
($($tokens:tt)*) => {
#[cfg(bootstrap)]
cfg_match! { $($tokens)* }
#[cfg(not(bootstrap))]
cfg_select! { $($tokens)* }
};
}
cfg_select_dispatch! {
cfg_select! {
any(target_arch = "x86", target_arch = "x86_64") => {
fn analyze_source_file_dispatch(
src: &str,

View file

@ -17,11 +17,10 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![cfg_attr(bootstrap, feature(cfg_match))]
#![cfg_attr(not(bootstrap), feature(cfg_select))]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(array_windows)]
#![feature(cfg_select)]
#![feature(core_io_borrowed_buf)]
#![feature(if_let_guard)]
#![feature(map_try_insert)]

View file

@ -1,5 +1,6 @@
#![cfg_attr(feature = "nightly", rustc_diagnostic_item = "type_ir")]
// tidy-alphabetical-start
#![allow(rustc::direct_use_of_rustc_type_ir)]
#![allow(rustc::usage_of_ty_tykind)]
#![allow(rustc::usage_of_type_ir_inherent)]
#![allow(rustc::usage_of_type_ir_traits)]
@ -8,7 +9,6 @@
feature(associated_type_defaults, never_type, rustc_attrs, negative_impls)
)]
#![cfg_attr(feature = "nightly", allow(internal_features))]
#![cfg_attr(not(bootstrap), allow(rustc::direct_use_of_rustc_type_ir))]
// tidy-alphabetical-end
extern crate self as rustc_type_ir;

View file

@ -29,8 +29,6 @@ debug_typeid = []
[lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = [
# #[cfg(bootstrap)] loongarch32
'cfg(target_arch, values("loongarch32"))',
'cfg(no_fp_fmt_parse)',
# core use #[path] imports to portable-simd `core_simd` crate
# and to stdarch `core_arch` crate which messes-up with Cargo list

View file

@ -21,18 +21,12 @@
#![allow(internal_features)]
#![warn(unreachable_pub)]
#[cfg(not(bootstrap))]
#[lang = "pointee_sized"]
pub trait PointeeSized {}
#[cfg(not(bootstrap))]
#[lang = "meta_sized"]
pub trait MetaSized: PointeeSized {}
#[cfg(bootstrap)]
#[lang = "sized"]
pub trait Sized {}
#[cfg(not(bootstrap))]
#[lang = "sized"]
pub trait Sized: MetaSized {}
@ -43,19 +37,8 @@ trait Copy {}
#[lang = "freeze"]
auto trait Freeze {}
#[cfg(bootstrap)]
impl<T: ?Sized> Copy for *mut T {}
#[cfg(not(bootstrap))]
impl<T: PointeeSized> Copy for *mut T {}
#[cfg(bootstrap)]
#[lang = "drop_in_place"]
#[inline]
#[allow(unconditional_recursion)]
pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
drop_in_place(to_drop);
}
#[cfg(not(bootstrap))]
#[lang = "drop_in_place"]
#[inline]
#[allow(unconditional_recursion)]

View file

@ -8,18 +8,12 @@
#![allow(internal_features)]
#![warn(unreachable_pub)]
#[cfg(not(bootstrap))]
#[lang = "pointee_sized"]
pub trait PointeeSized {}
#[cfg(not(bootstrap))]
#[lang = "meta_sized"]
pub trait MetaSized: PointeeSized {}
#[cfg(bootstrap)]
#[lang = "sized"]
pub trait Sized {}
#[cfg(not(bootstrap))]
#[lang = "sized"]
pub trait Sized: MetaSized {}
@ -31,19 +25,8 @@ trait Copy {}
#[lang = "freeze"]
auto trait Freeze {}
#[cfg(bootstrap)]
impl<T: ?Sized> Copy for *mut T {}
#[cfg(not(bootstrap))]
impl<T: PointeeSized> Copy for *mut T {}
#[cfg(bootstrap)]
#[lang = "drop_in_place"]
#[inline]
#[allow(unconditional_recursion)]
pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
drop_in_place(to_drop);
}
#[cfg(not(bootstrap))]
#[lang = "drop_in_place"]
#[inline]
#[allow(unconditional_recursion)]

View file

@ -157,8 +157,6 @@ test = true
[lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = [
# #[cfg(bootstrap)] loongarch32
'cfg(target_arch, values("loongarch32"))',
# std use #[path] imports to portable-simd `std_float` crate
# and to the `backtrace` crate which messes-up with Cargo list
# of declared features, we therefor expect any feature cfg

View file

@ -70,7 +70,6 @@ stack-cache-consistency-check = ["stack-cache"]
[lints.rust.unexpected_cfgs]
level = "warn"
check-cfg = ['cfg(bootstrap)']
# Be aware that this file is inside a workspace when used via the
# submodule in the rustc repo. That means there are many cargo features

View file

@ -176,11 +176,6 @@ pub fn phase_cargo_miri(mut args: impl Iterator<Item = String>) {
// Set `--target-dir` to `miri` inside the original target directory.
let target_dir = get_target_dir(&metadata);
cmd.arg("--target-dir").arg(target_dir);
// Only when running in x.py (where we are running with beta cargo): set `RUSTC_STAGE`.
// Will have to be removed on next bootstrap bump. tag: cfg(bootstrap).
if env::var_os("RUSTC_STAGE").is_some() {
cmd.arg("-Zdoctest-xcompile");
}
// *After* we set all the flags that need setting, forward everything else. Make sure to skip
// `--target-dir` (which would otherwise be set twice).

View file

@ -8,19 +8,8 @@ pub mod thread;
mod vector_clock;
pub mod weak_memory;
// cfg(bootstrap)
macro_rules! cfg_select_dispatch {
($($tokens:tt)*) => {
#[cfg(bootstrap)]
cfg_match! { $($tokens)* }
#[cfg(not(bootstrap))]
cfg_select! { $($tokens)* }
};
}
// Import either the real genmc adapter or a dummy module.
cfg_select_dispatch! {
cfg_select! {
feature = "genmc" => {
mod genmc;
pub use self::genmc::{GenmcCtx, GenmcConfig};

View file

@ -1,5 +1,4 @@
#![cfg_attr(bootstrap, feature(cfg_match))]
#![cfg_attr(not(bootstrap), feature(cfg_select))]
#![feature(cfg_select)]
#![feature(rustc_private)]
#![feature(float_gamma)]
#![feature(float_erf)]
@ -10,14 +9,12 @@
#![feature(variant_count)]
#![feature(yeet_expr)]
#![feature(nonzero_ops)]
#![cfg_attr(bootstrap, feature(nonnull_provenance))]
#![feature(strict_overflow_ops)]
#![feature(pointer_is_aligned_to)]
#![feature(ptr_metadata)]
#![feature(unqualified_local_imports)]
#![feature(derive_coerce_pointee)]
#![feature(arbitrary_self_types)]
#![cfg_attr(bootstrap, feature(file_lock))]
// Configure clippy and other lints
#![allow(
clippy::collapsible_else_if,

View file

@ -119,7 +119,6 @@ pub fn register_tests(cfg: &Config) -> Vec<TestInfo> {
// Register normal generators for all floats.
#[cfg(not(bootstrap))]
#[cfg(target_has_reliable_f16)]
register_float::<f16>(&mut tests, cfg);
register_float::<f32>(&mut tests, cfg);

View file

@ -170,7 +170,6 @@ macro_rules! impl_float {
impl_float!(f32, u32; f64, u64);
#[cfg(not(bootstrap))]
#[cfg(target_has_reliable_f16)]
impl_float!(f16, u16);