Auto merge of #82982 - Dylan-DPC:rollup-mt497z7, r=Dylan-DPC
Rollup of 9 pull requests Successful merges: - #81309 (always eagerly eval consts in Relate) - #82217 (Edition-specific preludes) - #82807 (rustdoc: Remove redundant enableSearchInput function) - #82924 (WASI: Switch to crt1-command.o to enable support for new-style commands) - #82949 (Do not attempt to unlock envlock in child process after a fork.) - #82955 (fix: wrong word) - #82962 (Treat header as first paragraph for shortened markdown descriptions) - #82976 (fix error message for copy(_nonoverlapping) overflow) - #82977 (Rename `Option::get_or_default` to `get_or_insert_default`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
f98721f886
40 changed files with 239 additions and 115 deletions
|
@ -2,7 +2,7 @@ use rustc_ast as ast;
|
||||||
use rustc_expand::base::{ExtCtxt, ResolverExpand};
|
use rustc_expand::base::{ExtCtxt, ResolverExpand};
|
||||||
use rustc_expand::expand::ExpansionConfig;
|
use rustc_expand::expand::ExpansionConfig;
|
||||||
use rustc_session::Session;
|
use rustc_session::Session;
|
||||||
use rustc_span::edition::Edition;
|
use rustc_span::edition::Edition::*;
|
||||||
use rustc_span::hygiene::AstPass;
|
use rustc_span::hygiene::AstPass;
|
||||||
use rustc_span::symbol::{kw, sym, Ident, Symbol};
|
use rustc_span::symbol::{kw, sym, Ident, Symbol};
|
||||||
use rustc_span::DUMMY_SP;
|
use rustc_span::DUMMY_SP;
|
||||||
|
@ -13,7 +13,7 @@ pub fn inject(
|
||||||
sess: &Session,
|
sess: &Session,
|
||||||
alt_std_name: Option<Symbol>,
|
alt_std_name: Option<Symbol>,
|
||||||
) -> ast::Crate {
|
) -> ast::Crate {
|
||||||
let rust_2018 = sess.parse_sess.edition >= Edition::Edition2018;
|
let edition = sess.parse_sess.edition;
|
||||||
|
|
||||||
// the first name in this list is the crate name of the crate with the prelude
|
// the first name in this list is the crate name of the crate with the prelude
|
||||||
let names: &[Symbol] = if sess.contains_name(&krate.attrs, sym::no_core) {
|
let names: &[Symbol] = if sess.contains_name(&krate.attrs, sym::no_core) {
|
||||||
|
@ -42,7 +42,11 @@ pub fn inject(
|
||||||
|
|
||||||
// .rev() to preserve ordering above in combination with insert(0, ...)
|
// .rev() to preserve ordering above in combination with insert(0, ...)
|
||||||
for &name in names.iter().rev() {
|
for &name in names.iter().rev() {
|
||||||
let ident = if rust_2018 { Ident::new(name, span) } else { Ident::new(name, call_site) };
|
let ident = if edition >= Edition2018 {
|
||||||
|
Ident::new(name, span)
|
||||||
|
} else {
|
||||||
|
Ident::new(name, call_site)
|
||||||
|
};
|
||||||
krate.items.insert(
|
krate.items.insert(
|
||||||
0,
|
0,
|
||||||
cx.item(
|
cx.item(
|
||||||
|
@ -58,14 +62,18 @@ pub fn inject(
|
||||||
// the one with the prelude.
|
// the one with the prelude.
|
||||||
let name = names[0];
|
let name = names[0];
|
||||||
|
|
||||||
let import_path = if rust_2018 {
|
let root = (edition == Edition2015).then(|| kw::PathRoot);
|
||||||
[name, sym::prelude, sym::v1].iter().map(|symbol| Ident::new(*symbol, span)).collect()
|
|
||||||
} else {
|
let import_path = root
|
||||||
[kw::PathRoot, name, sym::prelude, sym::v1]
|
.iter()
|
||||||
.iter()
|
.chain(&[name, sym::prelude])
|
||||||
.map(|symbol| Ident::new(*symbol, span))
|
.chain(&[match edition {
|
||||||
.collect()
|
Edition2015 => sym::rust_2015,
|
||||||
};
|
Edition2018 => sym::rust_2018,
|
||||||
|
Edition2021 => sym::rust_2021,
|
||||||
|
}])
|
||||||
|
.map(|&symbol| Ident::new(symbol, span))
|
||||||
|
.collect();
|
||||||
|
|
||||||
let use_item = cx.item(
|
let use_item = cx.item(
|
||||||
span,
|
span,
|
||||||
|
|
|
@ -421,12 +421,14 @@ pub fn super_relate_tys<R: TypeRelation<'tcx>>(
|
||||||
let t = relation.relate(a_t, b_t)?;
|
let t = relation.relate(a_t, b_t)?;
|
||||||
match relation.relate(sz_a, sz_b) {
|
match relation.relate(sz_a, sz_b) {
|
||||||
Ok(sz) => Ok(tcx.mk_ty(ty::Array(t, sz))),
|
Ok(sz) => Ok(tcx.mk_ty(ty::Array(t, sz))),
|
||||||
// FIXME(#72219) Implement improved diagnostics for mismatched array
|
|
||||||
// length?
|
|
||||||
Err(err) if relation.tcx().lazy_normalization() => Err(err),
|
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
// Check whether the lengths are both concrete/known values,
|
// Check whether the lengths are both concrete/known values,
|
||||||
// but are unequal, for better diagnostics.
|
// but are unequal, for better diagnostics.
|
||||||
|
//
|
||||||
|
// It might seem dubious to eagerly evaluate these constants here,
|
||||||
|
// we however cannot end up with errors in `Relate` during both
|
||||||
|
// `type_of` and `predicates_of`. This means that evaluating the
|
||||||
|
// constants should not cause cycle errors here.
|
||||||
let sz_a = sz_a.try_eval_usize(tcx, relation.param_env());
|
let sz_a = sz_a.try_eval_usize(tcx, relation.param_env());
|
||||||
let sz_b = sz_b.try_eval_usize(tcx, relation.param_env());
|
let sz_b = sz_b.try_eval_usize(tcx, relation.param_env());
|
||||||
match (sz_a, sz_b) {
|
match (sz_a, sz_b) {
|
||||||
|
|
|
@ -160,7 +160,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
||||||
let layout = self.layout_of(src.layout.ty.builtin_deref(true).unwrap().ty)?;
|
let layout = self.layout_of(src.layout.ty.builtin_deref(true).unwrap().ty)?;
|
||||||
let (size, align) = (layout.size, layout.align.abi);
|
let (size, align) = (layout.size, layout.align.abi);
|
||||||
let size = size.checked_mul(count, self).ok_or_else(|| {
|
let size = size.checked_mul(count, self).ok_or_else(|| {
|
||||||
err_ub_format!("overflow computing total size of `copy_nonoverlapping`")
|
err_ub_format!(
|
||||||
|
"overflow computing total size of `{}`",
|
||||||
|
if nonoverlapping { "copy_nonoverlapping" } else { "copy" }
|
||||||
|
)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
// Make sure we check both pointers for an access of the total size and aligment,
|
// Make sure we check both pointers for an access of the total size and aligment,
|
||||||
|
|
|
@ -25,7 +25,7 @@ Rust MIR: a lowered representation of Rust.
|
||||||
#![feature(stmt_expr_attributes)]
|
#![feature(stmt_expr_attributes)]
|
||||||
#![feature(trait_alias)]
|
#![feature(trait_alias)]
|
||||||
#![feature(option_expect_none)]
|
#![feature(option_expect_none)]
|
||||||
#![feature(option_get_or_default)]
|
#![feature(option_get_or_insert_default)]
|
||||||
#![feature(or_patterns)]
|
#![feature(or_patterns)]
|
||||||
#![feature(once_cell)]
|
#![feature(once_cell)]
|
||||||
#![feature(control_flow_enum)]
|
#![feature(control_flow_enum)]
|
||||||
|
|
|
@ -392,7 +392,8 @@ impl BasicCoverageBlockData {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let operand = counter_kind.as_operand_id();
|
let operand = counter_kind.as_operand_id();
|
||||||
if let Some(replaced) = self.edge_from_bcbs.get_or_default().insert(from_bcb, counter_kind)
|
if let Some(replaced) =
|
||||||
|
self.edge_from_bcbs.get_or_insert_default().insert(from_bcb, counter_kind)
|
||||||
{
|
{
|
||||||
Error::from_string(format!(
|
Error::from_string(format!(
|
||||||
"attempt to set an edge counter more than once; from_bcb: \
|
"attempt to set an edge counter more than once; from_bcb: \
|
||||||
|
|
|
@ -20,7 +20,7 @@ pub enum Edition {
|
||||||
Edition2015,
|
Edition2015,
|
||||||
/// The 2018 edition
|
/// The 2018 edition
|
||||||
Edition2018,
|
Edition2018,
|
||||||
/// The 2021 ediiton
|
/// The 2021 edition
|
||||||
Edition2021,
|
Edition2021,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -959,8 +959,11 @@ symbols! {
|
||||||
rt,
|
rt,
|
||||||
rtm_target_feature,
|
rtm_target_feature,
|
||||||
rust,
|
rust,
|
||||||
|
rust_2015,
|
||||||
rust_2015_preview,
|
rust_2015_preview,
|
||||||
|
rust_2018,
|
||||||
rust_2018_preview,
|
rust_2018_preview,
|
||||||
|
rust_2021,
|
||||||
rust_2021_preview,
|
rust_2021_preview,
|
||||||
rust_begin_unwind,
|
rust_begin_unwind,
|
||||||
rust_eh_catch_typeinfo,
|
rust_eh_catch_typeinfo,
|
||||||
|
|
|
@ -108,11 +108,13 @@ pub(super) fn post_mingw() -> CrtObjects {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn pre_wasi_fallback() -> CrtObjects {
|
pub(super) fn pre_wasi_fallback() -> CrtObjects {
|
||||||
|
// Use crt1-command.o instead of crt1.o to enable support for new-style
|
||||||
|
// commands. See https://reviews.llvm.org/D81689 for more info.
|
||||||
new(&[
|
new(&[
|
||||||
(LinkOutputKind::DynamicNoPicExe, &["crt1.o"]),
|
(LinkOutputKind::DynamicNoPicExe, &["crt1-command.o"]),
|
||||||
(LinkOutputKind::DynamicPicExe, &["crt1.o"]),
|
(LinkOutputKind::DynamicPicExe, &["crt1-command.o"]),
|
||||||
(LinkOutputKind::StaticNoPicExe, &["crt1.o"]),
|
(LinkOutputKind::StaticNoPicExe, &["crt1-command.o"]),
|
||||||
(LinkOutputKind::StaticPicExe, &["crt1.o"]),
|
(LinkOutputKind::StaticPicExe, &["crt1-command.o"]),
|
||||||
(LinkOutputKind::WasiReactorExe, &["crt1-reactor.o"]),
|
(LinkOutputKind::WasiReactorExe, &["crt1-reactor.o"]),
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
|
@ -854,34 +854,6 @@ impl<T> Option<T> {
|
||||||
// Entry-like operations to insert if None and return a reference
|
// Entry-like operations to insert if None and return a reference
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/// Inserts the default value into the option if it is [`None`], then
|
|
||||||
/// returns a mutable reference to the contained value.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// #![feature(option_get_or_default)]
|
|
||||||
///
|
|
||||||
/// let mut x = None;
|
|
||||||
///
|
|
||||||
/// {
|
|
||||||
/// let y: &mut u32 = x.get_or_default();
|
|
||||||
/// assert_eq!(y, &0);
|
|
||||||
///
|
|
||||||
/// *y = 7;
|
|
||||||
/// }
|
|
||||||
///
|
|
||||||
/// assert_eq!(x, Some(7));
|
|
||||||
/// ```
|
|
||||||
#[inline]
|
|
||||||
#[unstable(feature = "option_get_or_default", issue = "82901")]
|
|
||||||
pub fn get_or_default(&mut self) -> &mut T
|
|
||||||
where
|
|
||||||
T: Default,
|
|
||||||
{
|
|
||||||
self.get_or_insert_with(Default::default)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Inserts `value` into the option if it is [`None`], then
|
/// Inserts `value` into the option if it is [`None`], then
|
||||||
/// returns a mutable reference to the contained value.
|
/// returns a mutable reference to the contained value.
|
||||||
///
|
///
|
||||||
|
@ -905,6 +877,34 @@ impl<T> Option<T> {
|
||||||
self.get_or_insert_with(|| value)
|
self.get_or_insert_with(|| value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Inserts the default value into the option if it is [`None`], then
|
||||||
|
/// returns a mutable reference to the contained value.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// #![feature(option_get_or_insert_default)]
|
||||||
|
///
|
||||||
|
/// let mut x = None;
|
||||||
|
///
|
||||||
|
/// {
|
||||||
|
/// let y: &mut u32 = x.get_or_insert_default();
|
||||||
|
/// assert_eq!(y, &0);
|
||||||
|
///
|
||||||
|
/// *y = 7;
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// assert_eq!(x, Some(7));
|
||||||
|
/// ```
|
||||||
|
#[inline]
|
||||||
|
#[unstable(feature = "option_get_or_insert_default", issue = "82901")]
|
||||||
|
pub fn get_or_insert_default(&mut self) -> &mut T
|
||||||
|
where
|
||||||
|
T: Default,
|
||||||
|
{
|
||||||
|
self.get_or_insert_with(Default::default)
|
||||||
|
}
|
||||||
|
|
||||||
/// Inserts a value computed from `f` into the option if it is [`None`],
|
/// Inserts a value computed from `f` into the option if it is [`None`],
|
||||||
/// then returns a mutable reference to the contained value.
|
/// then returns a mutable reference to the contained value.
|
||||||
///
|
///
|
||||||
|
|
|
@ -1,5 +1,41 @@
|
||||||
//! The libcore prelude
|
//! The libcore prelude
|
||||||
|
//!
|
||||||
|
//! This module is intended for users of libcore which do not link to libstd as
|
||||||
|
//! well. This module is imported by default when `#![no_std]` is used in the
|
||||||
|
//! same manner as the standard library's prelude.
|
||||||
|
|
||||||
#![stable(feature = "core_prelude", since = "1.4.0")]
|
#![stable(feature = "core_prelude", since = "1.4.0")]
|
||||||
|
|
||||||
pub mod v1;
|
pub mod v1;
|
||||||
|
|
||||||
|
/// The 2015 version of the core prelude.
|
||||||
|
///
|
||||||
|
/// See the [module-level documentation](self) for more.
|
||||||
|
#[unstable(feature = "prelude_2015", issue = "none")]
|
||||||
|
pub mod rust_2015 {
|
||||||
|
#[unstable(feature = "prelude_2015", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use super::v1::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The 2018 version of the core prelude.
|
||||||
|
///
|
||||||
|
/// See the [module-level documentation](self) for more.
|
||||||
|
#[unstable(feature = "prelude_2018", issue = "none")]
|
||||||
|
pub mod rust_2018 {
|
||||||
|
#[unstable(feature = "prelude_2018", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use super::v1::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The 2021 version of the core prelude.
|
||||||
|
///
|
||||||
|
/// See the [module-level documentation](self) for more.
|
||||||
|
#[unstable(feature = "prelude_2021", issue = "none")]
|
||||||
|
pub mod rust_2021 {
|
||||||
|
#[unstable(feature = "prelude_2021", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use super::v1::*;
|
||||||
|
|
||||||
|
// FIXME: Add more things.
|
||||||
|
}
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
//! The core prelude
|
//! The first version of the core prelude.
|
||||||
//!
|
//!
|
||||||
//! This module is intended for users of libcore which do not link to libstd as
|
//! See the [module-level documentation](super) for more.
|
||||||
//! well. This module is imported by default when `#![no_std]` is used in the
|
|
||||||
//! same manner as the standard library's prelude.
|
|
||||||
|
|
||||||
#![stable(feature = "core_prelude", since = "1.4.0")]
|
#![stable(feature = "core_prelude", since = "1.4.0")]
|
||||||
|
|
||||||
|
|
|
@ -302,6 +302,7 @@
|
||||||
#![feature(panic_internals)]
|
#![feature(panic_internals)]
|
||||||
#![feature(panic_unwind)]
|
#![feature(panic_unwind)]
|
||||||
#![feature(pin_static_ref)]
|
#![feature(pin_static_ref)]
|
||||||
|
#![feature(prelude_2021)]
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![feature(ptr_internals)]
|
#![feature(ptr_internals)]
|
||||||
#![feature(raw)]
|
#![feature(raw)]
|
||||||
|
|
|
@ -84,3 +84,37 @@
|
||||||
#![stable(feature = "rust1", since = "1.0.0")]
|
#![stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
|
||||||
pub mod v1;
|
pub mod v1;
|
||||||
|
|
||||||
|
/// The 2015 version of the prelude of The Rust Standard Library.
|
||||||
|
///
|
||||||
|
/// See the [module-level documentation](self) for more.
|
||||||
|
#[unstable(feature = "prelude_2015", issue = "none")]
|
||||||
|
pub mod rust_2015 {
|
||||||
|
#[unstable(feature = "prelude_2015", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use super::v1::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The 2018 version of the prelude of The Rust Standard Library.
|
||||||
|
///
|
||||||
|
/// See the [module-level documentation](self) for more.
|
||||||
|
#[unstable(feature = "prelude_2018", issue = "none")]
|
||||||
|
pub mod rust_2018 {
|
||||||
|
#[unstable(feature = "prelude_2018", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use super::v1::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The 2021 version of the prelude of The Rust Standard Library.
|
||||||
|
///
|
||||||
|
/// See the [module-level documentation](self) for more.
|
||||||
|
#[unstable(feature = "prelude_2021", issue = "none")]
|
||||||
|
pub mod rust_2021 {
|
||||||
|
#[unstable(feature = "prelude_2021", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use super::v1::*;
|
||||||
|
|
||||||
|
#[unstable(feature = "prelude_2021", issue = "none")]
|
||||||
|
#[doc(no_inline)]
|
||||||
|
pub use core::prelude::rust_2021::*;
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//! The first version of the prelude of The Rust Standard Library.
|
//! The first version of the prelude of The Rust Standard Library.
|
||||||
//!
|
//!
|
||||||
//! See the [module-level documentation](../index.html) for more.
|
//! See the [module-level documentation](super) for more.
|
||||||
|
|
||||||
#![stable(feature = "rust1", since = "1.0.0")]
|
#![stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
|
||||||
|
|
|
@ -62,9 +62,14 @@ pub trait CommandExt: Sealed {
|
||||||
/// `fork`. This primarily means that any modifications made to memory on
|
/// `fork`. This primarily means that any modifications made to memory on
|
||||||
/// behalf of this closure will **not** be visible to the parent process.
|
/// behalf of this closure will **not** be visible to the parent process.
|
||||||
/// This is often a very constrained environment where normal operations
|
/// This is often a very constrained environment where normal operations
|
||||||
/// like `malloc` or acquiring a mutex are not guaranteed to work (due to
|
/// like `malloc`, accessing environment variables through [`std::env`]
|
||||||
|
/// or acquiring a mutex are not guaranteed to work (due to
|
||||||
/// other threads perhaps still running when the `fork` was run).
|
/// other threads perhaps still running when the `fork` was run).
|
||||||
///
|
///
|
||||||
|
/// For further details refer to the [POSIX fork() specification]
|
||||||
|
/// and the equivalent documentation for any targeted
|
||||||
|
/// platform, especially the requirements around *async-signal-safety*.
|
||||||
|
///
|
||||||
/// This also means that all resources such as file descriptors and
|
/// This also means that all resources such as file descriptors and
|
||||||
/// memory-mapped regions got duplicated. It is your responsibility to make
|
/// memory-mapped regions got duplicated. It is your responsibility to make
|
||||||
/// sure that the closure does not violate library invariants by making
|
/// sure that the closure does not violate library invariants by making
|
||||||
|
@ -73,6 +78,10 @@ pub trait CommandExt: Sealed {
|
||||||
/// When this closure is run, aspects such as the stdio file descriptors and
|
/// When this closure is run, aspects such as the stdio file descriptors and
|
||||||
/// working directory have successfully been changed, so output to these
|
/// working directory have successfully been changed, so output to these
|
||||||
/// locations may not appear where intended.
|
/// locations may not appear where intended.
|
||||||
|
///
|
||||||
|
/// [POSIX fork() specification]:
|
||||||
|
/// https://pubs.opengroup.org/onlinepubs/9699919799/functions/fork.html
|
||||||
|
/// [`std::env`]: mod@crate::env
|
||||||
#[stable(feature = "process_pre_exec", since = "1.34.0")]
|
#[stable(feature = "process_pre_exec", since = "1.34.0")]
|
||||||
unsafe fn pre_exec<F>(&mut self, f: F) -> &mut process::Command
|
unsafe fn pre_exec<F>(&mut self, f: F) -> &mut process::Command
|
||||||
where
|
where
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::convert::TryInto;
|
use crate::convert::TryInto;
|
||||||
use crate::fmt;
|
use crate::fmt;
|
||||||
use crate::io::{self, Error, ErrorKind};
|
use crate::io::{self, Error, ErrorKind};
|
||||||
|
use crate::mem;
|
||||||
use crate::ptr;
|
use crate::ptr;
|
||||||
use crate::sys;
|
use crate::sys;
|
||||||
use crate::sys::cvt;
|
use crate::sys::cvt;
|
||||||
|
@ -45,15 +46,14 @@ impl Command {
|
||||||
//
|
//
|
||||||
// Note that as soon as we're done with the fork there's no need to hold
|
// Note that as soon as we're done with the fork there's no need to hold
|
||||||
// a lock any more because the parent won't do anything and the child is
|
// a lock any more because the parent won't do anything and the child is
|
||||||
// in its own process.
|
// in its own process. Thus the parent drops the lock guard while the child
|
||||||
let result = unsafe {
|
// forgets it to avoid unlocking it on a new thread, which would be invalid.
|
||||||
let _env_lock = sys::os::env_lock();
|
let (env_lock, result) = unsafe { (sys::os::env_lock(), cvt(libc::fork())?) };
|
||||||
cvt(libc::fork())?
|
|
||||||
};
|
|
||||||
|
|
||||||
let pid = unsafe {
|
let pid = unsafe {
|
||||||
match result {
|
match result {
|
||||||
0 => {
|
0 => {
|
||||||
|
mem::forget(env_lock);
|
||||||
drop(input);
|
drop(input);
|
||||||
let Err(err) = self.do_exec(theirs, envp.as_ref());
|
let Err(err) = self.do_exec(theirs, envp.as_ref());
|
||||||
let errno = err.raw_os_error().unwrap_or(libc::EINVAL) as u32;
|
let errno = err.raw_os_error().unwrap_or(libc::EINVAL) as u32;
|
||||||
|
@ -74,7 +74,10 @@ impl Command {
|
||||||
rtassert!(output.write(&bytes).is_ok());
|
rtassert!(output.write(&bytes).is_ok());
|
||||||
libc::_exit(1)
|
libc::_exit(1)
|
||||||
}
|
}
|
||||||
n => n,
|
n => {
|
||||||
|
drop(env_lock);
|
||||||
|
n
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -210,7 +210,7 @@ fn copy_self_contained_objects(
|
||||||
panic!("Target {:?} does not have a \"wasi-root\" key", target.triple)
|
panic!("Target {:?} does not have a \"wasi-root\" key", target.triple)
|
||||||
})
|
})
|
||||||
.join("lib/wasm32-wasi");
|
.join("lib/wasm32-wasi");
|
||||||
for &obj in &["crt1.o", "crt1-reactor.o"] {
|
for &obj in &["crt1-command.o", "crt1-reactor.o"] {
|
||||||
copy_and_stamp(
|
copy_and_stamp(
|
||||||
builder,
|
builder,
|
||||||
&libdir_self_contained,
|
&libdir_self_contained,
|
||||||
|
|
|
@ -1093,6 +1093,7 @@ fn markdown_summary_with_limit(md: &str, length_limit: usize) -> (String, bool)
|
||||||
Tag::Emphasis => s.push_str("</em>"),
|
Tag::Emphasis => s.push_str("</em>"),
|
||||||
Tag::Strong => s.push_str("</strong>"),
|
Tag::Strong => s.push_str("</strong>"),
|
||||||
Tag::Paragraph => break,
|
Tag::Paragraph => break,
|
||||||
|
Tag::Heading(..) => break,
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
Event::HardBreak | Event::SoftBreak => {
|
Event::HardBreak | Event::SoftBreak => {
|
||||||
|
|
|
@ -235,6 +235,7 @@ fn test_short_markdown_summary() {
|
||||||
t("code `let x = i32;` ...", "code <code>let x = i32;</code> …");
|
t("code `let x = i32;` ...", "code <code>let x = i32;</code> …");
|
||||||
t("type `Type<'static>` ...", "type <code>Type<'static></code> …");
|
t("type `Type<'static>` ...", "type <code>Type<'static></code> …");
|
||||||
t("# top header", "top header");
|
t("# top header", "top header");
|
||||||
|
t("# top header\n\nfollowed by a paragraph", "top header");
|
||||||
t("## header", "header");
|
t("## header", "header");
|
||||||
t("first paragraph\n\nsecond paragraph", "first paragraph");
|
t("first paragraph\n\nsecond paragraph", "first paragraph");
|
||||||
t("```\nfn main() {}\n```", "");
|
t("```\nfn main() {}\n```", "");
|
||||||
|
|
|
@ -286,11 +286,7 @@ impl Serialize for TypeWithKind {
|
||||||
where
|
where
|
||||||
S: Serializer,
|
S: Serializer,
|
||||||
{
|
{
|
||||||
let mut seq = serializer.serialize_seq(None)?;
|
(&self.ty.name, ItemType::from(self.kind)).serialize(serializer)
|
||||||
seq.serialize_element(&self.ty.name)?;
|
|
||||||
let x: ItemType = self.kind.into();
|
|
||||||
seq.serialize_element(&x)?;
|
|
||||||
seq.end()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2188,7 +2188,7 @@ function defocusSearchBar() {
|
||||||
return "+";
|
return "+";
|
||||||
}
|
}
|
||||||
// button will collapse the section
|
// button will collapse the section
|
||||||
// note that this text is also set in the HTML template in render.rs
|
// note that this text is also set in the HTML template in ../render/mod.rs
|
||||||
return "\u2212"; // "\u2212" is "−" minus sign
|
return "\u2212"; // "\u2212" is "−" minus sign
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2831,17 +2831,10 @@ function defocusSearchBar() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function enableSearchInput() {
|
|
||||||
if (search_input) {
|
|
||||||
search_input.removeAttribute('disabled');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addSearchOptions(crates) {
|
function addSearchOptions(crates) {
|
||||||
var elem = document.getElementById("crate-search");
|
var elem = document.getElementById("crate-search");
|
||||||
|
|
||||||
if (!elem) {
|
if (!elem) {
|
||||||
enableSearchInput();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var savedCrate = getSettingValue("saved-filter-crate");
|
var savedCrate = getSettingValue("saved-filter-crate");
|
||||||
|
@ -2860,7 +2853,6 @@ function defocusSearchBar() {
|
||||||
elem.value = savedCrate;
|
elem.value = savedCrate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
enableSearchInput();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function buildHelperPopup() {
|
function buildHelperPopup() {
|
||||||
|
@ -2952,7 +2944,7 @@ function defocusSearchBar() {
|
||||||
search_input.addEventListener("blur", function() {
|
search_input.addEventListener("blur", function() {
|
||||||
search_input.placeholder = search_input.origPlaceholder;
|
search_input.placeholder = search_input.origPlaceholder;
|
||||||
});
|
});
|
||||||
enableSearchInput();
|
search_input.removeAttribute('disabled');
|
||||||
|
|
||||||
var crateSearchDropDown = document.getElementById("crate-search");
|
var crateSearchDropDown = document.getElementById("crate-search");
|
||||||
crateSearchDropDown.addEventListener("focus", loadSearch);
|
crateSearchDropDown.addEventListener("focus", loadSearch);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#![feature(asm)]
|
#![feature(asm)]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
// pretty-compare-only
|
// pretty-compare-only
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
// pretty-compare-only
|
// pretty-compare-only
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
// Test for issue 80832
|
// Test for issue 80832
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
// pretty-compare-only
|
// pretty-compare-only
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
// pretty-compare-only
|
// pretty-compare-only
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"kind":{"variant":"Interpolated","fields":[{"variant":"NtExpr","fields":[{"id":0,"kind":{"variant":"Lit","fields":[{"token":{"kind":"Str","symbol":"lib","suffix":null},"kind":{"variant":"Str","fields":["lib","Cooked"]},"span":{"lo":0,"hi":0}}]},"span":{"lo":0,"hi":0},"attrs":{"0":null},"tokens":{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}}]}]},"span":{"lo":0,"hi":0}}]},"tokens":null},{"0":[[{"variant":"Token","fields":[{"kind":"Pound","span":{"lo":0,"hi":0}}]},"Joint"],[{"variant":"Token","fields":[{"kind":"Not","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Delimited","fields":[{"open":{"lo":0,"hi":0},"close":{"lo":0,"hi":0}},"Bracket",{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate_type",false]},"span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":"Eq","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}]},"Alone"]]}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"items":[{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"prelude_import","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"","span":{"lo":0,"hi":0}},"kind":{"variant":"Use","fields":[{"prefix":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"{{root}}","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"std","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"prelude","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"v1","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"kind":"Glob","span":{"lo":0,"hi":0}}]},"tokens":null},{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"macro_use","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"std","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null},{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null}],"span":{"lo":0,"hi":0},"proc_macros":[]}
|
{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"kind":{"variant":"Interpolated","fields":[{"variant":"NtExpr","fields":[{"id":0,"kind":{"variant":"Lit","fields":[{"token":{"kind":"Str","symbol":"lib","suffix":null},"kind":{"variant":"Str","fields":["lib","Cooked"]},"span":{"lo":0,"hi":0}}]},"span":{"lo":0,"hi":0},"attrs":{"0":null},"tokens":{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}}]}]},"span":{"lo":0,"hi":0}}]},"tokens":null},{"0":[[{"variant":"Token","fields":[{"kind":"Pound","span":{"lo":0,"hi":0}}]},"Joint"],[{"variant":"Token","fields":[{"kind":"Not","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Delimited","fields":[{"open":{"lo":0,"hi":0},"close":{"lo":0,"hi":0}},"Bracket",{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate_type",false]},"span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":"Eq","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}]},"Alone"]]}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"items":[{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"prelude_import","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"","span":{"lo":0,"hi":0}},"kind":{"variant":"Use","fields":[{"prefix":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"{{root}}","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"std","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"prelude","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"rust_2015","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"kind":"Glob","span":{"lo":0,"hi":0}}]},"tokens":null},{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"macro_use","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"std","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null},{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null}],"span":{"lo":0,"hi":0},"proc_macros":[]}
|
||||||
|
|
|
@ -43,20 +43,6 @@ fn main() {
|
||||||
assert!(output.stderr.is_empty());
|
assert!(output.stderr.is_empty());
|
||||||
assert_eq!(output.stdout, b"hello\nhello2\n");
|
assert_eq!(output.stdout, b"hello\nhello2\n");
|
||||||
|
|
||||||
let output = unsafe {
|
|
||||||
Command::new(&me)
|
|
||||||
.arg("test2")
|
|
||||||
.pre_exec(|| {
|
|
||||||
env::set_var("FOO", "BAR");
|
|
||||||
Ok(())
|
|
||||||
})
|
|
||||||
.output()
|
|
||||||
.unwrap()
|
|
||||||
};
|
|
||||||
assert!(output.status.success());
|
|
||||||
assert!(output.stderr.is_empty());
|
|
||||||
assert!(output.stdout.is_empty());
|
|
||||||
|
|
||||||
let output = unsafe {
|
let output = unsafe {
|
||||||
Command::new(&me)
|
Command::new(&me)
|
||||||
.arg("test3")
|
.arg("test3")
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/const-argument-cross-crate-mismatch.rs:7:67
|
--> $DIR/const-argument-cross-crate-mismatch.rs:9:67
|
||||||
|
|
|
|
||||||
LL | let _ = const_generic_lib::function(const_generic_lib::Struct([0u8, 1u8]));
|
LL | let _ = const_generic_lib::function(const_generic_lib::Struct([0u8, 1u8]));
|
||||||
| ^^^^^^^^^^ expected an array with a fixed size of 3 elements, found one with 2 elements
|
| ^^^^^^^^^^ expected an array with a fixed size of 3 elements, found one with 2 elements
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/const-argument-cross-crate-mismatch.rs:9:65
|
--> $DIR/const-argument-cross-crate-mismatch.rs:11:65
|
||||||
|
|
|
|
||||||
LL | let _: const_generic_lib::Alias = const_generic_lib::Struct([0u8, 1u8, 2u8]);
|
LL | let _: const_generic_lib::Alias = const_generic_lib::Struct([0u8, 1u8, 2u8]);
|
||||||
| ^^^^^^^^^^^^^^^ expected an array with a fixed size of 2 elements, found one with 3 elements
|
| ^^^^^^^^^^^^^^^ expected an array with a fixed size of 2 elements, found one with 3 elements
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/const-argument-cross-crate-mismatch.rs:7:67
|
--> $DIR/const-argument-cross-crate-mismatch.rs:9:67
|
||||||
|
|
|
|
||||||
LL | let _ = const_generic_lib::function(const_generic_lib::Struct([0u8, 1u8]));
|
LL | let _ = const_generic_lib::function(const_generic_lib::Struct([0u8, 1u8]));
|
||||||
| ^^^^^^^^^^ expected an array with a fixed size of 3 elements, found one with 2 elements
|
| ^^^^^^^^^^ expected an array with a fixed size of 3 elements, found one with 2 elements
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/const-argument-cross-crate-mismatch.rs:9:65
|
--> $DIR/const-argument-cross-crate-mismatch.rs:11:65
|
||||||
|
|
|
|
||||||
LL | let _: const_generic_lib::Alias = const_generic_lib::Struct([0u8, 1u8, 2u8]);
|
LL | let _: const_generic_lib::Alias = const_generic_lib::Struct([0u8, 1u8, 2u8]);
|
||||||
| ^^^^^^^^^^^^^^^ expected an array with a fixed size of 2 elements, found one with 3 elements
|
| ^^^^^^^^^^^^^^^ expected an array with a fixed size of 2 elements, found one with 3 elements
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
// aux-build:const_generic_lib.rs
|
// aux-build:const_generic_lib.rs
|
||||||
// revisions: full min
|
// revisions: full min
|
||||||
|
#![cfg_attr(full, feature(const_generics))]
|
||||||
|
#![cfg_attr(full, allow(incomplete_features))]
|
||||||
|
|
||||||
extern crate const_generic_lib;
|
extern crate const_generic_lib;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// ignore-tidy-linelength
|
// ignore-tidy-linelength
|
||||||
#![feature(const_mut_refs, const_intrinsic_copy, const_ptr_offset)]
|
#![feature(const_mut_refs, const_intrinsic_copy, const_ptr_offset)]
|
||||||
use std::ptr;
|
use std::{ptr, mem};
|
||||||
|
|
||||||
const COPY_ZERO: () = unsafe {
|
const COPY_ZERO: () = unsafe {
|
||||||
// Since we are not copying anything, this should be allowed.
|
// Since we are not copying anything, this should be allowed.
|
||||||
|
@ -26,6 +26,20 @@ const COPY_OOB_2: () = unsafe {
|
||||||
//~| previously accepted
|
//~| previously accepted
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const COPY_SIZE_OVERFLOW: () = unsafe {
|
||||||
|
let x = 0;
|
||||||
|
let mut y = 0;
|
||||||
|
ptr::copy(&x, &mut y, 1usize << (mem::size_of::<usize>() * 8 - 1)); //~ ERROR any use of this value will cause an error
|
||||||
|
//~| overflow computing total size of `copy`
|
||||||
|
//~| previously accepted
|
||||||
|
};
|
||||||
|
const COPY_NONOVERLAPPING_SIZE_OVERFLOW: () = unsafe {
|
||||||
|
let x = 0;
|
||||||
|
let mut y = 0;
|
||||||
|
ptr::copy_nonoverlapping(&x, &mut y, 1usize << (mem::size_of::<usize>() * 8 - 1)); //~ ERROR any use of this value will cause an error
|
||||||
|
//~| overflow computing total size of `copy_nonoverlapping`
|
||||||
|
//~| previously accepted
|
||||||
|
};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,5 +33,37 @@ LL | | };
|
||||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||||
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: any use of this value will cause an error
|
||||||
|
--> $DIR/copy-intrinsic.rs:32:5
|
||||||
|
|
|
||||||
|
LL | / const COPY_SIZE_OVERFLOW: () = unsafe {
|
||||||
|
LL | | let x = 0;
|
||||||
|
LL | | let mut y = 0;
|
||||||
|
LL | | ptr::copy(&x, &mut y, 1usize << (mem::size_of::<usize>() * 8 - 1));
|
||||||
|
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflow computing total size of `copy`
|
||||||
|
LL | |
|
||||||
|
LL | |
|
||||||
|
LL | | };
|
||||||
|
| |__-
|
||||||
|
|
|
||||||
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||||
|
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||||
|
|
||||||
|
error: any use of this value will cause an error
|
||||||
|
--> $DIR/copy-intrinsic.rs:39:5
|
||||||
|
|
|
||||||
|
LL | / const COPY_NONOVERLAPPING_SIZE_OVERFLOW: () = unsafe {
|
||||||
|
LL | | let x = 0;
|
||||||
|
LL | | let mut y = 0;
|
||||||
|
LL | | ptr::copy_nonoverlapping(&x, &mut y, 1usize << (mem::size_of::<usize>() * 8 - 1));
|
||||||
|
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ overflow computing total size of `copy_nonoverlapping`
|
||||||
|
LL | |
|
||||||
|
LL | |
|
||||||
|
LL | | };
|
||||||
|
| |__-
|
||||||
|
|
|
||||||
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||||
|
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||||
|
|
||||||
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,10 @@ LL | extern crate std as Vec;
|
||||||
LL | define_vec!();
|
LL | define_vec!();
|
||||||
| -------------- in this macro invocation
|
| -------------- in this macro invocation
|
||||||
note: `Vec` could also refer to the struct defined here
|
note: `Vec` could also refer to the struct defined here
|
||||||
--> $SRC_DIR/std/src/prelude/v1.rs:LL:COL
|
--> $SRC_DIR/std/src/prelude/mod.rs:LL:COL
|
||||||
|
|
|
|
||||||
LL | pub use crate::vec::Vec;
|
LL | pub use super::v1::*;
|
||||||
| ^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^
|
||||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
|
@ -4,10 +4,10 @@ error[E0530]: match bindings cannot shadow unit variants
|
||||||
LL | None @ _ => {}
|
LL | None @ _ => {}
|
||||||
| ^^^^ cannot be named the same as a unit variant
|
| ^^^^ cannot be named the same as a unit variant
|
||||||
|
|
|
|
||||||
::: $SRC_DIR/std/src/prelude/v1.rs:LL:COL
|
::: $SRC_DIR/std/src/prelude/mod.rs:LL:COL
|
||||||
|
|
|
|
||||||
LL | pub use crate::option::Option::{self, None, Some};
|
LL | pub use super::v1::*;
|
||||||
| ---- the unit variant `None` is defined here
|
| ------------ the unit variant `None` is defined here
|
||||||
|
|
||||||
error[E0530]: match bindings cannot shadow constants
|
error[E0530]: match bindings cannot shadow constants
|
||||||
--> $DIR/issue-27033.rs:7:9
|
--> $DIR/issue-27033.rs:7:9
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#![feature(type_alias_impl_trait)]
|
#![feature(type_alias_impl_trait)]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ Respanned: TokenStream [Ident { ident: "$crate", span: $DIR/auxiliary/make-macro
|
||||||
|
|
||||||
#![no_std /* 0#0 */]
|
#![no_std /* 0#0 */]
|
||||||
#[prelude_import /* 0#1 */]
|
#[prelude_import /* 0#1 */]
|
||||||
use core /* 0#1 */::prelude /* 0#1 */::v1 /* 0#1 */::*;
|
use core /* 0#1 */::prelude /* 0#1 */::rust_2018 /* 0#1 */::*;
|
||||||
#[macro_use /* 0#1 */]
|
#[macro_use /* 0#1 */]
|
||||||
extern crate core /* 0#1 */;
|
extern crate core /* 0#1 */;
|
||||||
#[macro_use /* 0#1 */]
|
#[macro_use /* 0#1 */]
|
||||||
|
|
|
@ -35,7 +35,7 @@ PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||||
|
|
||||||
#![no_std /* 0#0 */]
|
#![no_std /* 0#0 */]
|
||||||
#[prelude_import /* 0#1 */]
|
#[prelude_import /* 0#1 */]
|
||||||
use ::core /* 0#1 */::prelude /* 0#1 */::v1 /* 0#1 */::*;
|
use ::core /* 0#1 */::prelude /* 0#1 */::rust_2015 /* 0#1 */::*;
|
||||||
#[macro_use /* 0#1 */]
|
#[macro_use /* 0#1 */]
|
||||||
extern crate core /* 0#2 */;
|
extern crate core /* 0#2 */;
|
||||||
#[macro_use /* 0#1 */]
|
#[macro_use /* 0#1 */]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#![feature(prelude_import)]
|
#![feature(prelude_import)]
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
use ::std::prelude::v1::*;
|
use ::std::prelude::rust_2015::*;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate std;
|
extern crate std;
|
||||||
// build-pass (FIXME(62277): could be check-pass?)
|
// build-pass (FIXME(62277): could be check-pass?)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue