update cfg(bootstrap)s

This commit is contained in:
Pietro Albini 2022-07-01 15:48:23 +02:00
parent da957f62c2
commit 6b2d3d5f3c
No known key found for this signature in database
GPG Key ID: CD76B35F7734769E
26 changed files with 84 additions and 220 deletions

View File

@ -478,7 +478,7 @@ impl<'cx, 'tcx> crate::MirBorrowckCtxt<'cx, 'tcx> {
struct_span_err!(self, span, E0716, "temporary value dropped while borrowed",)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
fn struct_span_err_with_code<S: Into<MultiSpan>>(
&self,
sp: S,

View File

@ -286,7 +286,7 @@ impl Diagnostic {
///
/// This span is *not* considered a ["primary span"][`MultiSpan`]; only
/// the `Span` supplied when creating the diagnostic is primary.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_label(&mut self, span: Span, label: impl Into<SubdiagnosticMessage>) -> &mut Self {
self.span.push_span_label(span, self.subdiagnostic_message_to_diagnostic_message(label));
self
@ -405,7 +405,7 @@ impl Diagnostic {
}
/// Add a note attached to this diagnostic.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn note(&mut self, msg: impl Into<SubdiagnosticMessage>) -> &mut Self {
self.sub(Level::Note, msg, MultiSpan::new(), None);
self
@ -428,7 +428,7 @@ impl Diagnostic {
/// Prints the span with a note above it.
/// This is like [`Diagnostic::note()`], but it gets its own span.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_note<S: Into<MultiSpan>>(
&mut self,
sp: S,
@ -450,7 +450,7 @@ impl Diagnostic {
}
/// Add a warning attached to this diagnostic.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn warn(&mut self, msg: impl Into<SubdiagnosticMessage>) -> &mut Self {
self.sub(Level::Warning(None), msg, MultiSpan::new(), None);
self
@ -458,7 +458,7 @@ impl Diagnostic {
/// Prints the span with a warning above it.
/// This is like [`Diagnostic::warn()`], but it gets its own span.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_warn<S: Into<MultiSpan>>(
&mut self,
sp: S,
@ -469,7 +469,7 @@ impl Diagnostic {
}
/// Add a help message attached to this diagnostic.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn help(&mut self, msg: impl Into<SubdiagnosticMessage>) -> &mut Self {
self.sub(Level::Help, msg, MultiSpan::new(), None);
self
@ -483,7 +483,7 @@ impl Diagnostic {
/// Prints the span with some help above it.
/// This is like [`Diagnostic::help()`], but it gets its own span.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_help<S: Into<MultiSpan>>(
&mut self,
sp: S,

View File

@ -649,7 +649,7 @@ impl Handler {
/// Attempting to `.emit()` the builder will only emit if either:
/// * `can_emit_warnings` is `true`
/// * `is_force_warn` was set in `DiagnosticId::Lint`
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_warn(
&self,
span: impl Into<MultiSpan>,
@ -678,7 +678,7 @@ impl Handler {
}
/// Construct a builder at the `Allow` level at the given `span` and with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_allow(
&self,
span: impl Into<MultiSpan>,
@ -691,7 +691,7 @@ impl Handler {
/// Construct a builder at the `Warning` level at the given `span` and with the `msg`.
/// Also include a code.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_warn_with_code(
&self,
span: impl Into<MultiSpan>,
@ -708,7 +708,7 @@ impl Handler {
/// Attempting to `.emit()` the builder will only emit if either:
/// * `can_emit_warnings` is `true`
/// * `is_force_warn` was set in `DiagnosticId::Lint`
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_warn(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, ()> {
DiagnosticBuilder::new(self, Level::Warning(None), msg)
}
@ -728,13 +728,13 @@ impl Handler {
}
/// Construct a builder at the `Allow` level with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_allow(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, ()> {
DiagnosticBuilder::new(self, Level::Allow, msg)
}
/// Construct a builder at the `Expect` level with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_expect(
&self,
msg: impl Into<DiagnosticMessage>,
@ -744,7 +744,7 @@ impl Handler {
}
/// Construct a builder at the `Error` level at the given `span` and with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_err(
&self,
span: impl Into<MultiSpan>,
@ -756,7 +756,7 @@ impl Handler {
}
/// Construct a builder at the `Error` level at the given `span`, with the `msg`, and `code`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_err_with_code(
&self,
span: impl Into<MultiSpan>,
@ -770,7 +770,7 @@ impl Handler {
/// Construct a builder at the `Error` level with the `msg`.
// FIXME: This method should be removed (every error should have an associated error code).
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_err(
&self,
msg: impl Into<DiagnosticMessage>,
@ -785,7 +785,7 @@ impl Handler {
}
/// Construct a builder at the `Error` level with the `msg` and the `code`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_err_with_code(
&self,
msg: impl Into<DiagnosticMessage>,
@ -797,7 +797,7 @@ impl Handler {
}
/// Construct a builder at the `Warn` level with the `msg` and the `code`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_warn_with_code(
&self,
msg: impl Into<DiagnosticMessage>,
@ -809,7 +809,7 @@ impl Handler {
}
/// Construct a builder at the `Fatal` level at the given `span` and with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_fatal(
&self,
span: impl Into<MultiSpan>,
@ -821,7 +821,7 @@ impl Handler {
}
/// Construct a builder at the `Fatal` level at the given `span`, with the `msg`, and `code`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_fatal_with_code(
&self,
span: impl Into<MultiSpan>,
@ -834,19 +834,19 @@ impl Handler {
}
/// Construct a builder at the `Error` level with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_fatal(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, !> {
DiagnosticBuilder::new_fatal(self, msg)
}
/// Construct a builder at the `Help` level with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_help(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, ()> {
DiagnosticBuilder::new(self, Level::Help, msg)
}
/// Construct a builder at the `Note` level with the `msg`.
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_note_without_error(
&self,
msg: impl Into<DiagnosticMessage>,
@ -854,13 +854,13 @@ impl Handler {
DiagnosticBuilder::new(self, Level::Note, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_fatal(&self, span: impl Into<MultiSpan>, msg: impl Into<DiagnosticMessage>) -> ! {
self.emit_diag_at_span(Diagnostic::new(Fatal, msg), span);
FatalError.raise()
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_fatal_with_code(
&self,
span: impl Into<MultiSpan>,
@ -871,7 +871,7 @@ impl Handler {
FatalError.raise()
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_err(
&self,
span: impl Into<MultiSpan>,
@ -880,7 +880,7 @@ impl Handler {
self.emit_diag_at_span(Diagnostic::new(Error { lint: false }, msg), span).unwrap()
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_err_with_code(
&self,
span: impl Into<MultiSpan>,
@ -893,12 +893,12 @@ impl Handler {
);
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_warn(&self, span: impl Into<MultiSpan>, msg: impl Into<DiagnosticMessage>) {
self.emit_diag_at_span(Diagnostic::new(Warning(None), msg), span);
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_warn_with_code(
&self,
span: impl Into<MultiSpan>,

View File

@ -1077,7 +1077,7 @@ impl<'a> ExtCtxt<'a> {
self.current_expansion.id.expansion_cause()
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_err<S: Into<MultiSpan>>(
&self,
sp: S,
@ -1102,11 +1102,11 @@ impl<'a> ExtCtxt<'a> {
///
/// Compilation will be stopped in the near future (at the end of
/// the macro expansion phase).
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_err<S: Into<MultiSpan>>(&self, sp: S, msg: &str) {
self.sess.parse_sess.span_diagnostic.span_err(sp, msg);
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_warn<S: Into<MultiSpan>>(&self, sp: S, msg: &str) {
self.sess.parse_sess.span_diagnostic.span_warn(sp, msg);
}

View File

@ -357,7 +357,7 @@ impl<'a> DerefMut for SnapshotParser<'a> {
}
impl<'a> Parser<'a> {
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub(super) fn span_err<S: Into<MultiSpan>>(
&self,
sp: S,
@ -366,7 +366,7 @@ impl<'a> Parser<'a> {
err.span_err(sp, self.diagnostic())
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_err<S: Into<MultiSpan>>(
&self,
sp: S,

View File

@ -13,7 +13,6 @@
#![feature(let_chains)]
#![feature(let_else)]
#![feature(never_type)]
#![cfg_attr(bootstrap, feature(nll))]
#![recursion_limit = "256"]
#![allow(rustdoc::private_intra_doc_links)]
#![allow(rustc::potential_query_instability)]

View File

@ -1102,49 +1102,6 @@ impl CrateCheckConfig {
.extend(atomic_values);
// Target specific values
#[cfg(bootstrap)]
{
for target in TARGETS
.iter()
.map(|target| Target::expect_builtin(&TargetTriple::from_triple(target)))
{
self.values_valid
.entry(sym::target_os)
.or_default()
.insert(Symbol::intern(&target.options.os));
self.values_valid
.entry(sym::target_family)
.or_default()
.extend(target.options.families.iter().map(|family| Symbol::intern(family)));
self.values_valid
.entry(sym::target_arch)
.or_default()
.insert(Symbol::intern(&target.arch));
self.values_valid
.entry(sym::target_endian)
.or_default()
.insert(Symbol::intern(&target.options.endian.as_str()));
self.values_valid
.entry(sym::target_env)
.or_default()
.insert(Symbol::intern(&target.options.env));
self.values_valid
.entry(sym::target_abi)
.or_default()
.insert(Symbol::intern(&target.options.abi));
self.values_valid
.entry(sym::target_vendor)
.or_default()
.insert(Symbol::intern(&target.options.vendor));
self.values_valid
.entry(sym::target_pointer_width)
.or_default()
.insert(sym::integer(target.pointer_width));
}
}
// Target specific values
#[cfg(not(bootstrap))]
{
const VALUES: [&Symbol; 8] = [
&sym::target_os,

View File

@ -6,7 +6,7 @@
#![feature(once_cell)]
#![feature(option_get_or_insert_default)]
#![feature(rustc_attrs)]
#![cfg_attr(not(bootstrap), feature(map_many_mut))]
#![feature(map_many_mut)]
#![recursion_limit = "256"]
#![allow(rustc::potential_query_instability)]

View File

@ -311,7 +311,7 @@ impl ParseSess {
self.create_warning(warning).emit()
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_err(
&self,
msg: impl Into<DiagnosticMessage>,
@ -319,7 +319,7 @@ impl ParseSess {
self.span_diagnostic.struct_err(msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_warn(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, ()> {
self.span_diagnostic.struct_warn(msg)
}

View File

@ -280,7 +280,7 @@ impl Session {
self.crate_types.set(crate_types).expect("`crate_types` was initialized twice")
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_warn<S: Into<MultiSpan>>(
&self,
sp: S,
@ -288,7 +288,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_span_warn(sp, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_warn_with_expectation<S: Into<MultiSpan>>(
&self,
sp: S,
@ -297,7 +297,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_span_warn_with_expectation(sp, msg, id)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_warn_with_code<S: Into<MultiSpan>>(
&self,
sp: S,
@ -306,11 +306,11 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_span_warn_with_code(sp, msg, code)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_warn(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_warn(msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_warn_with_expectation(
&self,
msg: impl Into<DiagnosticMessage>,
@ -318,7 +318,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_warn_with_expectation(msg, id)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_allow<S: Into<MultiSpan>>(
&self,
sp: S,
@ -326,11 +326,11 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_span_allow(sp, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_allow(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_allow(msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_expect(
&self,
msg: impl Into<DiagnosticMessage>,
@ -338,7 +338,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_expect(msg, id)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_err<S: Into<MultiSpan>>(
&self,
sp: S,
@ -346,7 +346,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ErrorGuaranteed> {
self.diagnostic().struct_span_err(sp, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_err_with_code<S: Into<MultiSpan>>(
&self,
sp: S,
@ -356,14 +356,14 @@ impl Session {
self.diagnostic().struct_span_err_with_code(sp, msg, code)
}
// FIXME: This method should be removed (every error should have an associated error code).
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_err(
&self,
msg: impl Into<DiagnosticMessage>,
) -> DiagnosticBuilder<'_, ErrorGuaranteed> {
self.parse_sess.struct_err(msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_err_with_code(
&self,
msg: impl Into<DiagnosticMessage>,
@ -371,7 +371,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ErrorGuaranteed> {
self.diagnostic().struct_err_with_code(msg, code)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_warn_with_code(
&self,
msg: impl Into<DiagnosticMessage>,
@ -379,7 +379,7 @@ impl Session {
) -> DiagnosticBuilder<'_, ()> {
self.diagnostic().struct_warn_with_code(msg, code)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_fatal<S: Into<MultiSpan>>(
&self,
sp: S,
@ -387,7 +387,7 @@ impl Session {
) -> DiagnosticBuilder<'_, !> {
self.diagnostic().struct_span_fatal(sp, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_span_fatal_with_code<S: Into<MultiSpan>>(
&self,
sp: S,
@ -396,16 +396,16 @@ impl Session {
) -> DiagnosticBuilder<'_, !> {
self.diagnostic().struct_span_fatal_with_code(sp, msg, code)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn struct_fatal(&self, msg: impl Into<DiagnosticMessage>) -> DiagnosticBuilder<'_, !> {
self.diagnostic().struct_fatal(msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_fatal<S: Into<MultiSpan>>(&self, sp: S, msg: impl Into<DiagnosticMessage>) -> ! {
self.diagnostic().span_fatal(sp, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_fatal_with_code<S: Into<MultiSpan>>(
&self,
sp: S,
@ -414,11 +414,11 @@ impl Session {
) -> ! {
self.diagnostic().span_fatal_with_code(sp, msg, code)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn fatal(&self, msg: impl Into<DiagnosticMessage>) -> ! {
self.diagnostic().fatal(msg).raise()
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_err_or_warn<S: Into<MultiSpan>>(
&self,
is_warning: bool,
@ -431,7 +431,7 @@ impl Session {
self.span_err(sp, msg);
}
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_err<S: Into<MultiSpan>>(
&self,
sp: S,
@ -439,7 +439,7 @@ impl Session {
) -> ErrorGuaranteed {
self.diagnostic().span_err(sp, msg)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn span_err_with_code<S: Into<MultiSpan>>(
&self,
sp: S,
@ -448,7 +448,7 @@ impl Session {
) {
self.diagnostic().span_err_with_code(sp, msg, code)
}
#[cfg_attr(not(bootstrap), rustc_lint_diagnostics)]
#[rustc_lint_diagnostics]
pub fn err(&self, msg: impl Into<DiagnosticMessage>) -> ErrorGuaranteed {
self.diagnostic().err(msg)
}

View File

@ -206,7 +206,7 @@ impl<T> Box<T> {
/// ```
/// let five = Box::new(5);
/// ```
#[cfg(all(not(no_global_oom_handling), not(bootstrap)))]
#[cfg(all(not(no_global_oom_handling)))]
#[inline(always)]
#[stable(feature = "rust1", since = "1.0.0")]
#[must_use]
@ -215,23 +215,6 @@ impl<T> Box<T> {
Box::new(x)
}
/// Allocates memory on the heap and then places `x` into it.
///
/// This doesn't actually allocate if `T` is zero-sized.
///
/// # Examples
///
/// ```
/// let five = Box::new(5);
/// ```
#[cfg(all(not(no_global_oom_handling), bootstrap))]
#[inline(always)]
#[stable(feature = "rust1", since = "1.0.0")]
#[must_use]
pub fn new(x: T) -> Self {
box x
}
/// Constructs a new box with uninitialized contents.
///
/// # Examples
@ -296,7 +279,7 @@ impl<T> Box<T> {
#[must_use]
#[inline(always)]
pub fn pin(x: T) -> Pin<Box<T>> {
(#[cfg_attr(not(bootstrap), rustc_box)]
(#[rustc_box]
Box::new(x))
.into()
}
@ -1255,7 +1238,7 @@ unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Box<T, A> {
impl<T: Default> Default for Box<T> {
/// Creates a `Box<T>`, with the `Default` value for T.
fn default() -> Self {
#[cfg_attr(not(bootstrap), rustc_box)]
#[rustc_box]
Box::new(T::default())
}
}
@ -1628,7 +1611,7 @@ impl<T, const N: usize> From<[T; N]> for Box<[T]> {
/// println!("{boxed:?}");
/// ```
fn from(array: [T; N]) -> Box<[T]> {
#[cfg_attr(not(bootstrap), rustc_box)]
#[rustc_box]
Box::new(array)
}
}

View File

@ -149,7 +149,6 @@
#![feature(allocator_internals)]
#![feature(allow_internal_unstable)]
#![feature(associated_type_bounds)]
#![cfg_attr(bootstrap, feature(box_syntax))]
#![feature(cfg_sanitize)]
#![feature(const_deref)]
#![feature(const_mut_refs)]

View File

@ -34,7 +34,7 @@
/// be mindful of side effects.
///
/// [`Vec`]: crate::vec::Vec
#[cfg(all(not(no_global_oom_handling), not(test), not(bootstrap)))]
#[cfg(all(not(no_global_oom_handling), not(test)))]
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_diagnostic_item = "vec_macro"]
@ -54,24 +54,6 @@ macro_rules! vec {
);
}
/// Creates a `Vec` containing the arguments (bootstrap version).
#[cfg(all(not(no_global_oom_handling), not(test), bootstrap))]
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_diagnostic_item = "vec_macro"]
#[allow_internal_unstable(box_syntax, liballoc_internals)]
macro_rules! vec {
() => (
$crate::__rust_force_expr!($crate::vec::Vec::new())
);
($elem:expr; $n:expr) => (
$crate::__rust_force_expr!($crate::vec::from_elem($elem, $n))
);
($($x:expr),+ $(,)?) => (
$crate::__rust_force_expr!(<[_]>::into_vec(box [$($x),+]))
);
}
// HACK(japaric): with cfg(test) the inherent `[T]::into_vec` method, which is
// required for this macro definition, is not available. Instead use the
// `slice::into_vec` function which is only available with cfg(test)

View File

@ -3017,7 +3017,7 @@ impl<T, const N: usize> From<[T; N]> for Vec<T> {
#[cfg(not(test))]
fn from(s: [T; N]) -> Vec<T> {
<[T]>::into_vec(
#[cfg_attr(not(bootstrap), rustc_box)]
#[rustc_box]
Box::new(s),
)
}

View File

@ -106,7 +106,7 @@ use crate::marker::Destruct;
#[lang = "clone"]
#[rustc_diagnostic_item = "Clone"]
#[rustc_trivial_field_reads]
#[cfg_attr(not(bootstrap), const_trait)]
#[const_trait]
pub trait Clone: Sized {
/// Returns a copy of the value.
///
@ -129,7 +129,6 @@ pub trait Clone: Sized {
/// allocations.
#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(bootstrap, default_method_body_is_const)]
fn clone_from(&mut self, source: &Self)
where
Self: ~const Destruct,

View File

@ -214,7 +214,7 @@ use self::Ordering::*;
append_const_msg,
)
)]
#[cfg_attr(not(bootstrap), const_trait)]
#[const_trait]
#[rustc_diagnostic_item = "PartialEq"]
pub trait PartialEq<Rhs: ?Sized = Self> {
/// This method tests for `self` and `other` values to be equal, and is used
@ -227,7 +227,6 @@ pub trait PartialEq<Rhs: ?Sized = Self> {
#[inline]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(bootstrap, default_method_body_is_const)]
fn ne(&self, other: &Rhs) -> bool {
!self.eq(other)
}
@ -1054,7 +1053,7 @@ impl PartialOrd for Ordering {
append_const_msg,
)
)]
#[cfg_attr(not(bootstrap), const_trait)]
#[const_trait]
#[rustc_diagnostic_item = "PartialOrd"]
pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
/// This method returns an ordering between `self` and `other` values if one exists.
@ -1098,7 +1097,6 @@ pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
#[inline]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(bootstrap, default_method_body_is_const)]
fn lt(&self, other: &Rhs) -> bool {
matches!(self.partial_cmp(other), Some(Less))
}
@ -1118,7 +1116,6 @@ pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
#[inline]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(bootstrap, default_method_body_is_const)]
fn le(&self, other: &Rhs) -> bool {
// Pattern `Some(Less | Eq)` optimizes worse than negating `None | Some(Greater)`.
// FIXME: The root cause was fixed upstream in LLVM with:
@ -1141,7 +1138,6 @@ pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
#[inline]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(bootstrap, default_method_body_is_const)]
fn gt(&self, other: &Rhs) -> bool {
matches!(self.partial_cmp(other), Some(Greater))
}
@ -1161,7 +1157,6 @@ pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
#[inline]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(bootstrap, default_method_body_is_const)]
fn ge(&self, other: &Rhs) -> bool {
matches!(self.partial_cmp(other), Some(Greater | Equal))
}

View File

@ -2562,7 +2562,7 @@ macro_rules! tuple {
macro_rules! maybe_tuple_doc {
($a:ident @ #[$meta:meta] $item:item) => {
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
#[doc = "This trait is implemented for tuples up to twelve items long."]
#[$meta]
$item

View File

@ -900,7 +900,7 @@ mod impls {
macro_rules! maybe_tuple_doc {
($a:ident @ #[$meta:meta] $item:item) => {
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
#[doc = "This trait is implemented for tuples up to twelve items long."]
#[$meta]
$item

View File

@ -996,7 +996,7 @@ impl<T> (T,) {}
// Fake impl that's only really used for docs.
#[cfg(doc)]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
/// This trait is implemented on arbitrary-length tuples.
impl<T: Clone> Clone for (T,) {
fn clone(&self) -> Self {
@ -1007,7 +1007,7 @@ impl<T: Clone> Clone for (T,) {
// Fake impl that's only really used for docs.
#[cfg(doc)]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
/// This trait is implemented on arbitrary-length tuples.
impl<T: Copy> Copy for (T,) {
// empty

View File

@ -492,27 +492,6 @@ pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
unsafe { drop_in_place(to_drop) }
}
/// Creates a null raw pointer.
///
/// # Examples
///
/// ```
/// use std::ptr;
///
/// let p: *const i32 = ptr::null();
/// assert!(p.is_null());
/// ```
#[inline(always)]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_promotable]
#[rustc_const_stable(feature = "const_ptr_null", since = "1.24.0")]
#[rustc_diagnostic_item = "ptr_null"]
#[cfg(bootstrap)]
pub const fn null<T>() -> *const T {
invalid(0)
}
/// Creates a null raw pointer.
///
/// # Examples
@ -530,32 +509,10 @@ pub const fn null<T>() -> *const T {
#[rustc_const_stable(feature = "const_ptr_null", since = "1.24.0")]
#[rustc_allow_const_fn_unstable(ptr_metadata)]
#[rustc_diagnostic_item = "ptr_null"]
#[cfg(not(bootstrap))]
pub const fn null<T: ?Sized + Thin>() -> *const T {
from_raw_parts(invalid(0), ())
}
/// Creates a null mutable raw pointer.
///
/// # Examples
///
/// ```
/// use std::ptr;
///
/// let p: *mut i32 = ptr::null_mut();
/// assert!(p.is_null());
/// ```
#[inline(always)]
#[must_use]
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_promotable]
#[rustc_const_stable(feature = "const_ptr_null", since = "1.24.0")]
#[rustc_diagnostic_item = "ptr_null_mut"]
#[cfg(bootstrap)]
pub const fn null_mut<T>() -> *mut T {
invalid_mut(0)
}
/// Creates an invalid pointer with the given address.
///
/// This is different from `addr as *const T`, which creates a pointer that picks up a previously
@ -707,7 +664,6 @@ where
#[rustc_const_stable(feature = "const_ptr_null", since = "1.24.0")]
#[rustc_allow_const_fn_unstable(ptr_metadata)]
#[rustc_diagnostic_item = "ptr_null_mut"]
#[cfg(not(bootstrap))]
pub const fn null_mut<T: ?Sized + Thin>() -> *mut T {
from_raw_parts_mut(invalid_mut(0), ())
}

View File

@ -107,7 +107,7 @@ macro_rules! tuple_impls {
// Otherwise, it hides the docs entirely.
macro_rules! maybe_tuple_doc {
($a:ident @ #[$meta:meta] $item:item) => {
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
#[doc = "This trait is implemented for tuples up to twelve items long."]
#[$meta]
$item

View File

@ -96,17 +96,14 @@ fn test_is_null() {
let nmi: *mut dyn ToString = null_mut::<isize>();
assert!(nmi.is_null());
#[cfg(not(bootstrap))]
{
extern "C" {
type Extern;
}
let ec: *const Extern = null::<Extern>();
assert!(ec.is_null());
let em: *mut Extern = null_mut::<Extern>();
assert!(em.is_null());
extern "C" {
type Extern;
}
let ec: *const Extern = null::<Extern>();
assert!(ec.is_null());
let em: *mut Extern = null_mut::<Extern>();
assert!(em.is_null());
}
#[test]

View File

@ -249,7 +249,6 @@
#![feature(needs_panic_runtime)]
#![feature(negative_impls)]
#![feature(never_type)]
#![cfg_attr(bootstrap, feature(nll))]
#![feature(platform_intrinsics)]
#![feature(prelude_import)]
#![feature(rustc_attrs)]

View File

@ -996,7 +996,7 @@ impl<T> (T,) {}
// Fake impl that's only really used for docs.
#[cfg(doc)]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
/// This trait is implemented on arbitrary-length tuples.
impl<T: Clone> Clone for (T,) {
fn clone(&self) -> Self {
@ -1007,7 +1007,7 @@ impl<T: Clone> Clone for (T,) {
// Fake impl that's only really used for docs.
#[cfg(doc)]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(not(bootstrap), doc(tuple_variadic))]
#[doc(tuple_variadic)]
/// This trait is implemented on arbitrary-length tuples.
impl<T: Copy> Copy for (T,) {
// empty

View File

@ -1,7 +1,6 @@
#![no_std]
#![unstable(feature = "panic_unwind", issue = "32837")]
#![feature(link_cfg)]
#![cfg_attr(bootstrap, feature(native_link_modifiers_bundle))]
#![feature(staged_api)]
#![feature(c_unwind)]
#![feature(cfg_target_abi)]

View File

@ -11,7 +11,6 @@
#![feature(drain_filter)]
#![feature(let_chains)]
#![feature(let_else)]
#![cfg_attr(bootstrap, feature(nll))]
#![feature(test)]
#![feature(never_type)]
#![feature(once_cell)]