mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-30 05:51:58 +00:00
update cfg(bootstrap)s
This commit is contained in:
parent
da957f62c2
commit
6b2d3d5f3c
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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>,
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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)]
|
||||
|
@ -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,
|
||||
|
@ -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)]
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)]
|
||||
|
@ -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)
|
||||
|
@ -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),
|
||||
)
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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))
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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), ())
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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)]
|
||||
|
@ -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
|
||||
|
@ -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)]
|
||||
|
@ -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)]
|
||||
|
Loading…
Reference in New Issue
Block a user