mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-07 20:43:03 +00:00
Auto merge of #90598 - JohnTitor:rollup-kz1qioz, r=JohnTitor
Rollup of 9 pull requests Successful merges: - #90507 (Suggest `extern crate alloc` when using undeclared module `alloc`) - #90530 (Simplify js tester a bit) - #90533 (Add note about x86 instruction prefixes in asm! to unstable book) - #90537 (Update aarch64 `target_feature` list for LLVM 12.) - #90544 (Demote metadata load warning to "info".) - #90554 (Clean up some `-Z unstable-options` in tests.) - #90556 (Add more text and examples to `carrying_{add|mul}`) - #90563 (rustbot allow labels) - #90571 (Fix missing bottom border for headings in sidebar) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
b99bd8f8be
@ -180,6 +180,7 @@ pub fn to_llvm_feature<'a>(sess: &Session, s: &'a str) -> Vec<&'a str> {
|
||||
("aarch64", "dpb2") => vec!["ccdp"],
|
||||
("aarch64", "frintts") => vec!["fptoint"],
|
||||
("aarch64", "fcma") => vec!["complxnum"],
|
||||
("aarch64", "pmuv3") => vec!["perfmon"],
|
||||
(_, s) => vec![s],
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,6 @@ const ARM_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
("thumb-mode", Some(sym::arm_target_feature)),
|
||||
];
|
||||
|
||||
// Commented features are not available in LLVM 10.0, or have since been renamed
|
||||
const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
// FEAT_AdvSimd
|
||||
("neon", Some(sym::aarch64_target_feature)),
|
||||
@ -67,13 +66,13 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
// FEAT_DIT
|
||||
("dit", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_FLAGM
|
||||
// ("flagm", Some(sym::aarch64_target_feature)),
|
||||
("flagm", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_SSBS
|
||||
("ssbs", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_SB
|
||||
("sb", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_PAUTH
|
||||
// ("pauth", Some(sym::aarch64_target_feature)),
|
||||
("pauth", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_DPB
|
||||
("dpb", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_DPB2
|
||||
@ -93,11 +92,11 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
// FEAT_I8MM
|
||||
("i8mm", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_F32MM
|
||||
// ("f32mm", Some(sym::aarch64_target_feature)),
|
||||
("f32mm", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_F64MM
|
||||
// ("f64mm", Some(sym::aarch64_target_feature)),
|
||||
("f64mm", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_BF16
|
||||
// ("bf16", Some(sym::aarch64_target_feature)),
|
||||
("bf16", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_RAND
|
||||
("rand", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_BTI
|
||||
@ -116,13 +115,23 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
("sha3", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_SM3 & FEAT_SM4
|
||||
("sm4", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_PAN
|
||||
("pan", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_LOR
|
||||
("lor", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_VHE
|
||||
("vh", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_PMUv3
|
||||
("pmuv3", Some(sym::aarch64_target_feature)),
|
||||
// FEAT_SPE
|
||||
("spe", Some(sym::aarch64_target_feature)),
|
||||
("v8.1a", Some(sym::aarch64_target_feature)),
|
||||
("v8.2a", Some(sym::aarch64_target_feature)),
|
||||
("v8.3a", Some(sym::aarch64_target_feature)),
|
||||
("v8.4a", Some(sym::aarch64_target_feature)),
|
||||
("v8.5a", Some(sym::aarch64_target_feature)),
|
||||
// ("v8.6a", Some(sym::aarch64_target_feature)),
|
||||
// ("v8.7a", Some(sym::aarch64_target_feature)),
|
||||
("v8.6a", Some(sym::aarch64_target_feature)),
|
||||
("v8.7a", Some(sym::aarch64_target_feature)),
|
||||
];
|
||||
|
||||
const X86_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
|
||||
|
@ -236,7 +236,7 @@ use std::fmt::Write as _;
|
||||
use std::io::{Read, Result as IoResult, Write};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::{cmp, fmt, fs};
|
||||
use tracing::{debug, info, warn};
|
||||
use tracing::{debug, info};
|
||||
|
||||
#[derive(Clone)]
|
||||
crate struct CrateLocator<'a> {
|
||||
@ -549,7 +549,7 @@ impl<'a> CrateLocator<'a> {
|
||||
}
|
||||
}
|
||||
Err(err) => {
|
||||
warn!("no metadata found: {}", err);
|
||||
info!("no metadata found: {}", err);
|
||||
continue;
|
||||
}
|
||||
};
|
||||
|
@ -420,6 +420,10 @@ impl<'a> Resolver<'a> {
|
||||
err.span_label(span, label);
|
||||
|
||||
if let Some((suggestions, msg, applicability)) = suggestion {
|
||||
if suggestions.is_empty() {
|
||||
err.help(&msg);
|
||||
return err;
|
||||
}
|
||||
err.multipart_suggestion(&msg, suggestions, applicability);
|
||||
}
|
||||
|
||||
|
@ -2523,19 +2523,29 @@ impl<'a> Resolver<'a> {
|
||||
} else {
|
||||
(
|
||||
format!("use of undeclared crate or module `{}`", ident),
|
||||
self.find_similarly_named_module_or_crate(
|
||||
ident.name,
|
||||
&parent_scope.module,
|
||||
)
|
||||
.map(|sugg| {
|
||||
(
|
||||
vec![(ident.span, sugg.to_string())],
|
||||
if ident.name == sym::alloc {
|
||||
Some((
|
||||
vec![],
|
||||
String::from(
|
||||
"there is a crate or module with a similar name",
|
||||
"add `extern crate alloc` to use the `alloc` crate",
|
||||
),
|
||||
Applicability::MaybeIncorrect,
|
||||
))
|
||||
} else {
|
||||
self.find_similarly_named_module_or_crate(
|
||||
ident.name,
|
||||
&parent_scope.module,
|
||||
)
|
||||
}),
|
||||
.map(|sugg| {
|
||||
(
|
||||
vec![(ident.span, sugg.to_string())],
|
||||
String::from(
|
||||
"there is a crate or module with a similar name",
|
||||
),
|
||||
Applicability::MaybeIncorrect,
|
||||
)
|
||||
})
|
||||
},
|
||||
)
|
||||
}
|
||||
} else {
|
||||
|
@ -94,7 +94,13 @@ depending on the target pointer size.
|
||||
}
|
||||
|
||||
macro_rules! widening_impl {
|
||||
($SelfT:ty, $WideT:ty, $BITS:literal) => {
|
||||
($SelfT:ty, $WideT:ty, $BITS:literal, unsigned) => {
|
||||
widening_impl!($SelfT, $WideT, $BITS, "");
|
||||
};
|
||||
($SelfT:ty, $WideT:ty, $BITS:literal, signed) => {
|
||||
widening_impl!($SelfT, $WideT, $BITS, "# //");
|
||||
};
|
||||
($SelfT:ty, $WideT:ty, $BITS:literal, $AdaptiveTestPrefix:literal) => {
|
||||
/// Calculates the complete product `self * rhs` without the possibility to overflow.
|
||||
///
|
||||
/// This returns the low-order (wrapping) bits and the high-order (overflow) bits
|
||||
@ -148,6 +154,33 @@ macro_rules! widening_impl {
|
||||
/// assert_eq!(5u32.carrying_mul(2, 10), (20, 0));
|
||||
/// assert_eq!(1_000_000_000u32.carrying_mul(10, 0), (1410065408, 2));
|
||||
/// assert_eq!(1_000_000_000u32.carrying_mul(10, 10), (1410065418, 2));
|
||||
#[doc = concat!($AdaptiveTestPrefix, "assert_eq!(",
|
||||
stringify!($SelfT), "::MAX.carrying_mul(", stringify!($SelfT), "::MAX, ", stringify!($SelfT), "::MAX), ",
|
||||
"(0, ", stringify!($SelfT), "::MAX));"
|
||||
)]
|
||||
/// ```
|
||||
///
|
||||
/// If `carry` is zero, this is similar to [`overflowing_mul`](Self::overflowing_mul),
|
||||
/// except that it gives the value of the overflow instead of just whether one happened:
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(bigint_helper_methods)]
|
||||
/// let r = u8::carrying_mul(7, 13, 0);
|
||||
/// assert_eq!((r.0, r.1 != 0), u8::overflowing_mul(7, 13));
|
||||
/// let r = u8::carrying_mul(13, 42, 0);
|
||||
/// assert_eq!((r.0, r.1 != 0), u8::overflowing_mul(13, 42));
|
||||
/// ```
|
||||
///
|
||||
/// The value of the first field in the returned tuple matches what you'd get
|
||||
/// by combining the [`wrapping_mul`](Self::wrapping_mul) and
|
||||
/// [`wrapping_add`](Self::wrapping_add) methods:
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(bigint_helper_methods)]
|
||||
/// assert_eq!(
|
||||
/// 789_u16.carrying_mul(456, 123).0,
|
||||
/// 789_u16.wrapping_mul(456).wrapping_add(123),
|
||||
/// );
|
||||
/// ```
|
||||
#[unstable(feature = "bigint_helper_methods", issue = "85532")]
|
||||
#[rustc_const_unstable(feature = "bigint_helper_methods", issue = "85532")]
|
||||
@ -168,21 +201,21 @@ macro_rules! widening_impl {
|
||||
|
||||
#[lang = "i8"]
|
||||
impl i8 {
|
||||
widening_impl! { i8, i16, 8 }
|
||||
widening_impl! { i8, i16, 8, signed }
|
||||
int_impl! { i8, i8, u8, 8, 7, -128, 127, 2, "-0x7e", "0xa", "0x12", "0x12", "0x48",
|
||||
"[0x12]", "[0x12]", "", "" }
|
||||
}
|
||||
|
||||
#[lang = "i16"]
|
||||
impl i16 {
|
||||
widening_impl! { i16, i32, 16 }
|
||||
widening_impl! { i16, i32, 16, signed }
|
||||
int_impl! { i16, i16, u16, 16, 15, -32768, 32767, 4, "-0x5ffd", "0x3a", "0x1234", "0x3412",
|
||||
"0x2c48", "[0x34, 0x12]", "[0x12, 0x34]", "", "" }
|
||||
}
|
||||
|
||||
#[lang = "i32"]
|
||||
impl i32 {
|
||||
widening_impl! { i32, i64, 32 }
|
||||
widening_impl! { i32, i64, 32, signed }
|
||||
int_impl! { i32, i32, u32, 32, 31, -2147483648, 2147483647, 8, "0x10000b3", "0xb301",
|
||||
"0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
|
||||
"[0x12, 0x34, 0x56, 0x78]", "", "" }
|
||||
@ -190,7 +223,7 @@ impl i32 {
|
||||
|
||||
#[lang = "i64"]
|
||||
impl i64 {
|
||||
widening_impl! { i64, i128, 64 }
|
||||
widening_impl! { i64, i128, 64, signed }
|
||||
int_impl! { i64, i64, u64, 64, 63, -9223372036854775808, 9223372036854775807, 12,
|
||||
"0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
|
||||
"0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
|
||||
@ -212,7 +245,7 @@ impl i128 {
|
||||
#[cfg(target_pointer_width = "16")]
|
||||
#[lang = "isize"]
|
||||
impl isize {
|
||||
widening_impl! { isize, i32, 16 }
|
||||
widening_impl! { isize, i32, 16, signed }
|
||||
int_impl! { isize, i16, usize, 16, 15, -32768, 32767, 4, "-0x5ffd", "0x3a", "0x1234",
|
||||
"0x3412", "0x2c48", "[0x34, 0x12]", "[0x12, 0x34]",
|
||||
usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
|
||||
@ -221,7 +254,7 @@ impl isize {
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
#[lang = "isize"]
|
||||
impl isize {
|
||||
widening_impl! { isize, i64, 32 }
|
||||
widening_impl! { isize, i64, 32, signed }
|
||||
int_impl! { isize, i32, usize, 32, 31, -2147483648, 2147483647, 8, "0x10000b3", "0xb301",
|
||||
"0x12345678", "0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]",
|
||||
"[0x12, 0x34, 0x56, 0x78]",
|
||||
@ -231,7 +264,7 @@ impl isize {
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
#[lang = "isize"]
|
||||
impl isize {
|
||||
widening_impl! { isize, i128, 64 }
|
||||
widening_impl! { isize, i128, 64, signed }
|
||||
int_impl! { isize, i64, usize, 64, 63, -9223372036854775808, 9223372036854775807,
|
||||
12, "0xaa00000000006e1", "0x6e10aa", "0x1234567890123456", "0x5634129078563412",
|
||||
"0x6a2c48091e6a2c48", "[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
|
||||
@ -244,7 +277,7 @@ const ASCII_CASE_MASK: u8 = 0b0010_0000;
|
||||
|
||||
#[lang = "u8"]
|
||||
impl u8 {
|
||||
widening_impl! { u8, u16, 8 }
|
||||
widening_impl! { u8, u16, 8, unsigned }
|
||||
uint_impl! { u8, u8, i8, 8, 255, 2, "0x82", "0xa", "0x12", "0x12", "0x48", "[0x12]",
|
||||
"[0x12]", "", "" }
|
||||
|
||||
@ -793,21 +826,21 @@ impl u8 {
|
||||
|
||||
#[lang = "u16"]
|
||||
impl u16 {
|
||||
widening_impl! { u16, u32, 16 }
|
||||
widening_impl! { u16, u32, 16, unsigned }
|
||||
uint_impl! { u16, u16, i16, 16, 65535, 4, "0xa003", "0x3a", "0x1234", "0x3412", "0x2c48",
|
||||
"[0x34, 0x12]", "[0x12, 0x34]", "", "" }
|
||||
}
|
||||
|
||||
#[lang = "u32"]
|
||||
impl u32 {
|
||||
widening_impl! { u32, u64, 32 }
|
||||
widening_impl! { u32, u64, 32, unsigned }
|
||||
uint_impl! { u32, u32, i32, 32, 4294967295, 8, "0x10000b3", "0xb301", "0x12345678",
|
||||
"0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]", "[0x12, 0x34, 0x56, 0x78]", "", "" }
|
||||
}
|
||||
|
||||
#[lang = "u64"]
|
||||
impl u64 {
|
||||
widening_impl! { u64, u128, 64 }
|
||||
widening_impl! { u64, u128, 64, unsigned }
|
||||
uint_impl! { u64, u64, i64, 64, 18446744073709551615, 12, "0xaa00000000006e1", "0x6e10aa",
|
||||
"0x1234567890123456", "0x5634129078563412", "0x6a2c48091e6a2c48",
|
||||
"[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
|
||||
@ -830,7 +863,7 @@ impl u128 {
|
||||
#[cfg(target_pointer_width = "16")]
|
||||
#[lang = "usize"]
|
||||
impl usize {
|
||||
widening_impl! { usize, u32, 16 }
|
||||
widening_impl! { usize, u32, 16, unsigned }
|
||||
uint_impl! { usize, u16, isize, 16, 65535, 4, "0xa003", "0x3a", "0x1234", "0x3412", "0x2c48",
|
||||
"[0x34, 0x12]", "[0x12, 0x34]",
|
||||
usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
|
||||
@ -838,7 +871,7 @@ impl usize {
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
#[lang = "usize"]
|
||||
impl usize {
|
||||
widening_impl! { usize, u64, 32 }
|
||||
widening_impl! { usize, u64, 32, unsigned }
|
||||
uint_impl! { usize, u32, isize, 32, 4294967295, 8, "0x10000b3", "0xb301", "0x12345678",
|
||||
"0x78563412", "0x1e6a2c48", "[0x78, 0x56, 0x34, 0x12]", "[0x12, 0x34, 0x56, 0x78]",
|
||||
usize_isize_to_xe_bytes_doc!(), usize_isize_from_xe_bytes_doc!() }
|
||||
@ -847,7 +880,7 @@ impl usize {
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
#[lang = "usize"]
|
||||
impl usize {
|
||||
widening_impl! { usize, u128, 64 }
|
||||
widening_impl! { usize, u128, 64, unsigned }
|
||||
uint_impl! { usize, u64, isize, 64, 18446744073709551615, 12, "0xaa00000000006e1", "0x6e10aa",
|
||||
"0x1234567890123456", "0x5634129078563412", "0x6a2c48091e6a2c48",
|
||||
"[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
|
||||
|
@ -1504,6 +1504,8 @@ macro_rules! uint_impl {
|
||||
/// additional bit of overflow. This allows for chaining together multiple additions
|
||||
/// to create "big integers" which represent larger values.
|
||||
///
|
||||
#[doc = concat!("This can be thought of as a ", stringify!($BITS), "-bit \"full adder\", in the electronics sense.")]
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// Basic usage
|
||||
@ -1513,7 +1515,20 @@ macro_rules! uint_impl {
|
||||
#[doc = concat!("assert_eq!(5", stringify!($SelfT), ".carrying_add(2, false), (7, false));")]
|
||||
#[doc = concat!("assert_eq!(5", stringify!($SelfT), ".carrying_add(2, true), (8, false));")]
|
||||
#[doc = concat!("assert_eq!(", stringify!($SelfT), "::MAX.carrying_add(1, false), (0, true));")]
|
||||
#[doc = concat!("assert_eq!(", stringify!($SelfT), "::MAX.carrying_add(0, true), (0, true));")]
|
||||
#[doc = concat!("assert_eq!(", stringify!($SelfT), "::MAX.carrying_add(1, true), (1, true));")]
|
||||
#[doc = concat!("assert_eq!(",
|
||||
stringify!($SelfT), "::MAX.carrying_add(", stringify!($SelfT), "::MAX, true), ",
|
||||
"(", stringify!($SelfT), "::MAX, true));"
|
||||
)]
|
||||
/// ```
|
||||
///
|
||||
/// If `carry` is false, this method is equivalent to [`overflowing_add`](Self::overflowing_add):
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(bigint_helper_methods)]
|
||||
#[doc = concat!("assert_eq!(5_", stringify!($SelfT), ".carrying_add(2, false), 5_", stringify!($SelfT), ".overflowing_add(2));")]
|
||||
#[doc = concat!("assert_eq!(", stringify!($SelfT), "::MAX.carrying_add(1, false), ", stringify!($SelfT), "::MAX.overflowing_add(1));")]
|
||||
/// ```
|
||||
#[unstable(feature = "bigint_helper_methods", issue = "85532")]
|
||||
#[rustc_const_unstable(feature = "const_bigint_helper_methods", issue = "85532")]
|
||||
|
@ -885,5 +885,7 @@ The compiler performs some additional checks on options:
|
||||
- You are responsible for switching any target-specific state (e.g. thread-local storage, stack bounds).
|
||||
- The set of memory locations that you may access is the intersection of those allowed by the `asm!` blocks you entered and exited.
|
||||
- You cannot assume that an `asm!` block will appear exactly once in the output binary. The compiler is allowed to instantiate multiple copies of the `asm!` block, for example when the function containing it is inlined in multiple places.
|
||||
- On x86, inline assembly must not end with an instruction prefix (such as `LOCK`) that would apply to instructions generated by the compiler.
|
||||
- The compiler is currently unable to detect this due to the way inline assembly is compiled, but may catch and reject this in the future.
|
||||
|
||||
> **Note**: As a general rule, the flags covered by `preserves_flags` are those which are *not* preserved when performing a function call.
|
||||
|
@ -156,7 +156,8 @@ h1.fqn > .in-band > a:hover {
|
||||
section hierarchies. */
|
||||
h2,
|
||||
.top-doc h3,
|
||||
.top-doc h4 {
|
||||
.top-doc h4,
|
||||
.sidebar .others h3 {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
h3.code-header {
|
||||
|
@ -566,6 +566,7 @@ function hideThemeButtonState() {
|
||||
// delayed sidebar rendering.
|
||||
window.initSidebarItems = function(items) {
|
||||
var sidebar = document.getElementsByClassName("sidebar-elems")[0];
|
||||
var others;
|
||||
var current = window.sidebarCurrent;
|
||||
|
||||
function addSidebarCrates(crates) {
|
||||
@ -594,7 +595,7 @@ function hideThemeButtonState() {
|
||||
li.appendChild(link);
|
||||
ul.appendChild(li);
|
||||
}
|
||||
sidebar.appendChild(div);
|
||||
others.appendChild(div);
|
||||
}
|
||||
|
||||
function block(shortty, longty) {
|
||||
@ -635,10 +636,14 @@ function hideThemeButtonState() {
|
||||
ul.appendChild(li);
|
||||
}
|
||||
div.appendChild(ul);
|
||||
sidebar.appendChild(div);
|
||||
others.appendChild(div);
|
||||
}
|
||||
|
||||
if (sidebar) {
|
||||
others = document.createElement("div");
|
||||
others.className = "others";
|
||||
sidebar.appendChild(others);
|
||||
|
||||
var isModule = hasClass(document.body, "mod");
|
||||
if (!isModule) {
|
||||
block("primitive", "Primitive Types");
|
||||
|
@ -109,6 +109,9 @@ assert-css: ("h6#sub-heading-for-enum-impl-item-doc", {"border-bottom-width": "0
|
||||
assert-css: ("h6#sub-sub-heading-for-enum-impl-item-doc", {"font-size": "15.2px"})
|
||||
assert-css: ("h6#sub-sub-heading-for-enum-impl-item-doc", {"border-bottom-width": "0px"})
|
||||
|
||||
assert-text: (".sidebar .others h3", "Modules")
|
||||
assert-css: (".sidebar .others h3", {"border-bottom-width": "1px"}, ALL)
|
||||
|
||||
goto: file://|DOC_PATH|/test_docs/union.HeavilyDocumentedUnion.html
|
||||
|
||||
assert-css: ("h1.fqn", {"font-size": "24px"})
|
||||
|
@ -4,17 +4,17 @@ assert-text: (".sidebar > .location", "Crate test_docs")
|
||||
assert-count: (".sidebar .location", 1)
|
||||
assert-text: (".sidebar-elems > #all-types", "See all test_docs's items")
|
||||
// We check that we have the crates list and that the "current" on is "test_docs".
|
||||
assert-text: (".sidebar-elems > .crate > ul > li > a.current", "test_docs")
|
||||
assert-text: (".sidebar-elems .crate > ul > li > a.current", "test_docs")
|
||||
// And we're also supposed to have the list of items in the current module.
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(1)", "Modules")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(2)", "Macros")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(3)", "Structs")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(4)", "Enums")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(5)", "Traits")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(6)", "Functions")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(7)", "Type Definitions")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(8)", "Unions")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(9)", "Keywords")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(1)", "Modules")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(2)", "Macros")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(3)", "Structs")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(4)", "Enums")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(5)", "Traits")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(6)", "Functions")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(7)", "Type Definitions")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(8)", "Unions")
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(9)", "Keywords")
|
||||
assert-text: ("#structs + .item-table .item-left > a", "Foo")
|
||||
click: "#structs + .item-table .item-left > a"
|
||||
|
||||
@ -24,13 +24,13 @@ assert-count: (".sidebar .location", 2)
|
||||
assert-false: ".sidebar-elems > .crate"
|
||||
// We now go back to the crate page to click on the "lib2" crate link.
|
||||
goto: file://|DOC_PATH|/test_docs/index.html
|
||||
click: ".sidebar-elems > .crate > ul > li:first-child > a"
|
||||
click: ".sidebar-elems .crate > ul > li:first-child > a"
|
||||
|
||||
// PAGE: lib2/index.html
|
||||
goto: file://|DOC_PATH|/lib2/index.html
|
||||
assert-text: (".sidebar > .location", "Crate lib2")
|
||||
// We check that we have the crates list and that the "current" on is now "lib2".
|
||||
assert-text: (".sidebar-elems > .crate > ul > li > a.current", "lib2")
|
||||
assert-text: (".sidebar-elems .crate > ul > li > a.current", "lib2")
|
||||
// We now go to the "foobar" function page.
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(1)", "Modules")
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(2)", "Structs")
|
||||
@ -57,6 +57,6 @@ assert-false: ".sidebar-elems > .crate"
|
||||
goto: ./sub_module/sub_sub_module/index.html
|
||||
assert-text: (".sidebar > .location", "Module sub_sub_module")
|
||||
// We check that we don't have the crate list.
|
||||
assert-false: ".sidebar-elems > .crate"
|
||||
assert-text: (".sidebar-elems > .items > ul > li:nth-child(1)", "Functions")
|
||||
assert-false: ".sidebar-elems .crate"
|
||||
assert-text: (".sidebar-elems .items > ul > li:nth-child(1)", "Functions")
|
||||
assert-text: ("#functions + .item-table .item-left > a", "foo")
|
||||
|
@ -1,6 +1,5 @@
|
||||
// run-pass
|
||||
// edition:2021
|
||||
// compile-flags: -Zunstable-options
|
||||
|
||||
fn main() {
|
||||
println!("hello, 2021");
|
||||
|
@ -1,6 +1,5 @@
|
||||
// check-pass
|
||||
// edition:2021
|
||||
// compile-flags: -Zunstable-options
|
||||
|
||||
use std::array::IntoIter;
|
||||
use std::ops::Deref;
|
||||
|
@ -1,6 +1,6 @@
|
||||
// --force-warn $LINT causes $LINT (which is deny-by-default) to warn
|
||||
// despite $LINT being allowed on command line
|
||||
// compile-flags: -A const_err --force-warn const_err -Zunstable-options
|
||||
// compile-flags: -A const_err --force-warn const_err
|
||||
// check-pass
|
||||
|
||||
const C: i32 = 1 / 0;
|
||||
|
@ -1,6 +1,6 @@
|
||||
// --force-warn $LINT_GROUP causes $LINT (which is warn-by-default) to warn
|
||||
// despite $LINT being allowed on command line
|
||||
// compile-flags: -A bare-trait-objects --force-warn rust-2018-idioms -Zunstable-options
|
||||
// compile-flags: -A bare-trait-objects --force-warn rust-2018-idioms
|
||||
// check-pass
|
||||
|
||||
pub trait SomeTrait {}
|
||||
|
@ -1,6 +1,6 @@
|
||||
// --force-warn $LINT causes $LINT (which is warn-by-default) to warn
|
||||
// despite being allowed in one submodule (but not the other)
|
||||
// compile-flags: --force-warn dead_code -Zunstable-options
|
||||
// compile-flags: --force-warn dead_code
|
||||
// check-pass
|
||||
|
||||
mod one {
|
||||
|
@ -1,5 +1,5 @@
|
||||
// --force-warn warnings is an error
|
||||
// compile-flags: --force-warn warnings -Zunstable-options
|
||||
// compile-flags: --force-warn warnings
|
||||
// error-pattern: `warnings` lint group is not supported
|
||||
|
||||
fn main() {}
|
||||
|
@ -2,8 +2,6 @@ error[E0602]: `warnings` lint group is not supported with ´--force-warn´
|
||||
|
||||
error[E0602]: `warnings` lint group is not supported with ´--force-warn´
|
||||
|
||||
error[E0602]: `warnings` lint group is not supported with ´--force-warn´
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0602`.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --error-format json -Zunstable-options
|
||||
// compile-flags: --error-format json
|
||||
// run-rustfix
|
||||
|
||||
// The output for humans should just highlight the whole span without showing
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --error-format json -Zunstable-options
|
||||
// compile-flags: --error-format json
|
||||
// run-rustfix
|
||||
|
||||
// The output for humans should just highlight the whole span without showing
|
||||
|
@ -1,4 +1,4 @@
|
||||
{"message":"unnecessary parentheses around assigned value","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":596,"byte_end":597,"line_start":16,"line_end":16,"column_start":14,"column_end":15,"is_primary":true,"text":[{"text":" let _a = (1 / (2 + 3));
|
||||
{"message":"unnecessary parentheses around assigned value","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_json_suggestion.rs","byte_start":577,"byte_end":578,"line_start":16,"line_end":16,"column_start":14,"column_end":15,"is_primary":true,"text":[{"text":" let _a = (1 / (2 + 3));
|
||||
--> $DIR/unused_parens_json_suggestion.rs:16:14
|
||||
|
|
||||
LL | let _a = (1 / (2 + 3));
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --error-format json -Zunstable-options
|
||||
// compile-flags: --error-format json
|
||||
// run-rustfix
|
||||
|
||||
// The output for humans should just highlight the whole span without showing
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --error-format json -Zunstable-options
|
||||
// compile-flags: --error-format json
|
||||
// run-rustfix
|
||||
|
||||
// The output for humans should just highlight the whole span without showing
|
||||
|
@ -1,4 +1,4 @@
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":500,"byte_end":501,"line_start":17,"line_end":17,"column_start":8,"column_end":9,"is_primary":true,"text":[{"text":" if (_b) {
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":481,"byte_end":482,"line_start":17,"line_end":17,"column_start":8,"column_end":9,"is_primary":true,"text":[{"text":" if (_b) {
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:17:8
|
||||
|
|
||||
LL | if (_b) {
|
||||
@ -16,7 +16,7 @@ LL + if _b {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":631,"byte_end":632,"line_start":28,"line_end":28,"column_start":7,"column_end":8,"is_primary":true,"text":[{"text":" if(c) {
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":612,"byte_end":613,"line_start":28,"line_end":28,"column_start":7,"column_end":8,"is_primary":true,"text":[{"text":" if(c) {
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:28:7
|
||||
|
|
||||
LL | if(c) {
|
||||
@ -29,7 +29,7 @@ LL + if c {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":711,"byte_end":712,"line_start":32,"line_end":32,"column_start":8,"column_end":9,"is_primary":true,"text":[{"text":" if (c){
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":692,"byte_end":693,"line_start":32,"line_end":32,"column_start":8,"column_end":9,"is_primary":true,"text":[{"text":" if (c){
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:32:8
|
||||
|
|
||||
LL | if (c){
|
||||
@ -42,7 +42,7 @@ LL + if c {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `while` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":793,"byte_end":794,"line_start":36,"line_end":36,"column_start":11,"column_end":12,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":11,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":807,"byte_end":808,"line_start":36,"line_end":36,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":25,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these parentheses","code":null,"level":"help","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":793,"byte_end":794,"line_start":36,"line_end":36,"column_start":11,"column_end":12,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":11,"highlight_end":12}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":807,"byte_end":808,"line_start":36,"line_end":36,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":25,"highlight_end":26}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: unnecessary parentheses around `while` condition
|
||||
{"message":"unnecessary parentheses around `while` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":774,"byte_end":775,"line_start":36,"line_end":36,"column_start":11,"column_end":12,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":11,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":788,"byte_end":789,"line_start":36,"line_end":36,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":25,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove these parentheses","code":null,"level":"help","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":774,"byte_end":775,"line_start":36,"line_end":36,"column_start":11,"column_end":12,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":11,"highlight_end":12}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":788,"byte_end":789,"line_start":36,"line_end":36,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":" while (false && true){","highlight_start":25,"highlight_end":26}],"label":null,"suggested_replacement":" ","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"error: unnecessary parentheses around `while` condition
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:36:11
|
||||
|
|
||||
LL | while (false && true){
|
||||
@ -55,7 +55,7 @@ LL + while false && true {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":821,"byte_end":822,"line_start":37,"line_end":37,"column_start":12,"column_end":13,"is_primary":true,"text":[{"text":" if (c) {
|
||||
{"message":"unnecessary parentheses around `if` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":802,"byte_end":803,"line_start":37,"line_end":37,"column_start":12,"column_end":13,"is_primary":true,"text":[{"text":" if (c) {
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:37:12
|
||||
|
|
||||
LL | if (c) {
|
||||
@ -68,7 +68,7 @@ LL + if c {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `while` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":918,"byte_end":919,"line_start":43,"line_end":43,"column_start":10,"column_end":11,"is_primary":true,"text":[{"text":" while(true && false) {
|
||||
{"message":"unnecessary parentheses around `while` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":899,"byte_end":900,"line_start":43,"line_end":43,"column_start":10,"column_end":11,"is_primary":true,"text":[{"text":" while(true && false) {
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:43:10
|
||||
|
|
||||
LL | while(true && false) {
|
||||
@ -81,7 +81,7 @@ LL + while true && false {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `for` iterator expression","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":987,"byte_end":988,"line_start":44,"line_end":44,"column_start":18,"column_end":19,"is_primary":true,"text":[{"text":" for _ in (0 .. 3){
|
||||
{"message":"unnecessary parentheses around `for` iterator expression","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":968,"byte_end":969,"line_start":44,"line_end":44,"column_start":18,"column_end":19,"is_primary":true,"text":[{"text":" for _ in (0 .. 3){
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:44:18
|
||||
|
|
||||
LL | for _ in (0 .. 3){
|
||||
@ -94,7 +94,7 @@ LL + for _ in 0 .. 3 {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `for` iterator expression","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":1088,"byte_end":1089,"line_start":49,"line_end":49,"column_start":14,"column_end":15,"is_primary":true,"text":[{"text":" for _ in (0 .. 3) {
|
||||
{"message":"unnecessary parentheses around `for` iterator expression","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":1069,"byte_end":1070,"line_start":49,"line_end":49,"column_start":14,"column_end":15,"is_primary":true,"text":[{"text":" for _ in (0 .. 3) {
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:49:14
|
||||
|
|
||||
LL | for _ in (0 .. 3) {
|
||||
@ -107,7 +107,7 @@ LL + for _ in 0 .. 3 {
|
||||
|
|
||||
|
||||
"}
|
||||
{"message":"unnecessary parentheses around `while` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":1147,"byte_end":1148,"line_start":50,"line_end":50,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":" while (true && false) {
|
||||
{"message":"unnecessary parentheses around `while` condition","code":{"code":"unused_parens","explanation":null},"level":"error","spans":[{"file_name":"$DIR/unused_parens_remove_json_suggestion.rs","byte_start":1128,"byte_end":1129,"line_start":50,"line_end":50,"column_start":15,"column_end":16,"is_primary":true,"text":[{"text":" while (true && false) {
|
||||
--> $DIR/unused_parens_remove_json_suggestion.rs:50:15
|
||||
|
|
||||
LL | while (true && false) {
|
||||
|
@ -1,6 +1,5 @@
|
||||
// run-pass
|
||||
// edition:2021
|
||||
// compile-flags: -Zunstable-options
|
||||
|
||||
// regression test for https://github.com/rust-lang/rust/pull/85678
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
// aux-crate:priv:priv_dep=priv_dep.rs
|
||||
// aux-build:pub_dep.rs
|
||||
// compile-flags: -Zunstable-options
|
||||
#![deny(exported_private_dependencies)]
|
||||
|
||||
// This crate is a private dependency
|
||||
|
@ -1,23 +1,23 @@
|
||||
error: type `OtherType` from private dependency 'priv_dep' in public interface
|
||||
--> $DIR/pub-priv1.rs:20:5
|
||||
--> $DIR/pub-priv1.rs:21:5
|
||||
|
|
||||
LL | pub field: OtherType,
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/pub-priv1.rs:3:9
|
||||
--> $DIR/pub-priv1.rs:4:9
|
||||
|
|
||||
LL | #![deny(exported_private_dependencies)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: type `OtherType` from private dependency 'priv_dep' in public interface
|
||||
--> $DIR/pub-priv1.rs:27:5
|
||||
--> $DIR/pub-priv1.rs:28:5
|
||||
|
|
||||
LL | pub fn pub_fn(param: OtherType) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: trait `OtherTrait` from private dependency 'priv_dep' in public interface
|
||||
--> $DIR/pub-priv1.rs:34:5
|
||||
--> $DIR/pub-priv1.rs:35:5
|
||||
|
|
||||
LL | type Foo: OtherTrait;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -1,6 +1,5 @@
|
||||
// check-pass
|
||||
// edition:2021
|
||||
// compile-flags: -Zunstable-options
|
||||
|
||||
fn main() {
|
||||
let _: u16 = 123i32.try_into().unwrap();
|
||||
|
@ -1,6 +1,6 @@
|
||||
// check-pass
|
||||
// run-rustfix
|
||||
// compile-flags: -Z unstable-options --edition 2018
|
||||
// edition:2018
|
||||
|
||||
#![warn(rust_2021_prefixes_incompatible_syntax)]
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// check-pass
|
||||
// run-rustfix
|
||||
// compile-flags: -Z unstable-options --edition 2018
|
||||
// edition:2018
|
||||
|
||||
#![warn(rust_2021_prefixes_incompatible_syntax)]
|
||||
|
||||
|
5
src/test/ui/suggestions/undeclared-module-alloc.rs
Normal file
5
src/test/ui/suggestions/undeclared-module-alloc.rs
Normal file
@ -0,0 +1,5 @@
|
||||
// edition:2018
|
||||
|
||||
use alloc::rc::Rc; //~ ERROR failed to resolve: use of undeclared crate or module `alloc`
|
||||
|
||||
fn main() {}
|
11
src/test/ui/suggestions/undeclared-module-alloc.stderr
Normal file
11
src/test/ui/suggestions/undeclared-module-alloc.stderr
Normal file
@ -0,0 +1,11 @@
|
||||
error[E0433]: failed to resolve: use of undeclared crate or module `alloc`
|
||||
--> $DIR/undeclared-module-alloc.rs:3:5
|
||||
|
|
||||
LL | use alloc::rc::Rc;
|
||||
| ^^^^^ use of undeclared crate or module `alloc`
|
||||
|
|
||||
= help: add `extern crate alloc` to use the `alloc` crate
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0433`.
|
@ -1,7 +1,7 @@
|
||||
// --extern-location with a raw reference
|
||||
|
||||
// aux-crate:bar=bar.rs
|
||||
// compile-flags:--extern-location bar
|
||||
// compile-flags:--extern-location bar -Zunstable-options
|
||||
|
||||
#![warn(unused_crate_dependencies)]
|
||||
|
||||
|
@ -242,9 +242,6 @@ impl TestProps {
|
||||
if let Some(edition) = config.parse_edition(ln) {
|
||||
self.compile_flags.push(format!("--edition={}", edition));
|
||||
has_edition = true;
|
||||
if edition == "2021" {
|
||||
self.compile_flags.push("-Zunstable-options".to_string());
|
||||
}
|
||||
}
|
||||
|
||||
config.parse_and_update_revisions(ln, &mut self.revisions);
|
||||
|
@ -1607,9 +1607,6 @@ impl<'test> TestCx<'test> {
|
||||
get_lib_name(&aux_path.trim_end_matches(".rs").replace('-', "_"), is_dylib);
|
||||
rustc.arg("--extern").arg(format!("{}={}/{}", aux_name, aux_dir.display(), lib_name));
|
||||
}
|
||||
if !self.props.aux_crates.is_empty() {
|
||||
rustc.arg("-Zunstable-options");
|
||||
}
|
||||
|
||||
aux_dir
|
||||
}
|
||||
|
@ -414,7 +414,7 @@ function parseOptions(args) {
|
||||
"test_folder": "",
|
||||
"test_file": "",
|
||||
};
|
||||
var correspondances = {
|
||||
var correspondences = {
|
||||
"--resource-suffix": "resource_suffix",
|
||||
"--doc-folder": "doc_folder",
|
||||
"--test-folder": "test_folder",
|
||||
@ -423,17 +423,13 @@ function parseOptions(args) {
|
||||
};
|
||||
|
||||
for (var i = 0; i < args.length; ++i) {
|
||||
if (args[i] === "--resource-suffix"
|
||||
|| args[i] === "--doc-folder"
|
||||
|| args[i] === "--test-folder"
|
||||
|| args[i] === "--test-file"
|
||||
|| args[i] === "--crate-name") {
|
||||
if (correspondences.hasOwnProperty(args[i])) {
|
||||
i += 1;
|
||||
if (i >= args.length) {
|
||||
console.log("Missing argument after `" + args[i - 1] + "` option.");
|
||||
return null;
|
||||
}
|
||||
opts[correspondances[args[i - 1]]] = args[i];
|
||||
opts[correspondences[args[i - 1]]] = args[i];
|
||||
} else if (args[i] === "--help") {
|
||||
showHelp();
|
||||
process.exit(0);
|
||||
|
@ -2,6 +2,8 @@
|
||||
allow-unauthenticated = [
|
||||
"C-*", "A-*", "E-*", "NLL-*", "O-*", "S-*", "T-*", "WG-*", "F-*",
|
||||
"D-*",
|
||||
"needs-fcp",
|
||||
"relnotes",
|
||||
"requires-nightly",
|
||||
"regression-*",
|
||||
"perf-*",
|
||||
|
Loading…
Reference in New Issue
Block a user