Auto merge of #87351 - ehuss:rollup-pga85az, r=ehuss
Rollup of 5 pull requests Successful merges: - #81864 (docs: GlobalAlloc: completely replace example with one that works) - #87024 (rustdoc: show count of item contents when hidden) - #87278 (⬆️ rust-analyzer) - #87326 (Update cargo) - #87346 (Rename force-warns to force-warn) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
32c9b7b091
@ -370,7 +370,7 @@ pub fn check_lint_name_cmdline(
|
||||
match level {
|
||||
Level::Allow => "-A",
|
||||
Level::Warn => "-W",
|
||||
Level::ForceWarn => "--force-warns",
|
||||
Level::ForceWarn => "--force-warn",
|
||||
Level::Deny => "-D",
|
||||
Level::Forbid => "-F",
|
||||
},
|
||||
|
@ -64,7 +64,7 @@ pub fn as_str(self) -> &'static str {
|
||||
match self {
|
||||
Level::Allow => "allow",
|
||||
Level::Warn => "warn",
|
||||
Level::ForceWarn => "force-warns",
|
||||
Level::ForceWarn => "force-warn",
|
||||
Level::Deny => "deny",
|
||||
Level::Forbid => "forbid",
|
||||
}
|
||||
|
@ -288,7 +288,7 @@ fn struct_lint_level_impl(
|
||||
Level::Deny => "-D",
|
||||
Level::Forbid => "-F",
|
||||
Level::Allow => "-A",
|
||||
Level::ForceWarn => "--force-warns",
|
||||
Level::ForceWarn => "--force-warn",
|
||||
};
|
||||
let hyphen_case_lint_name = name.replace("_", "-");
|
||||
if lint_flag_val.as_str() == name {
|
||||
|
@ -1101,7 +1101,7 @@ pub fn rustc_short_optgroups() -> Vec<RustcOptGroup> {
|
||||
),
|
||||
opt::multi_s(
|
||||
"",
|
||||
"force-warns",
|
||||
"force-warn",
|
||||
"Specifiy lints that should warn even if \
|
||||
they are allowed somewhere else",
|
||||
"LINT",
|
||||
@ -1175,11 +1175,11 @@ pub fn get_cmd_lint_options(
|
||||
let mut lint_opts_with_position = vec![];
|
||||
let mut describe_lints = false;
|
||||
|
||||
if !debugging_opts.unstable_options && matches.opt_present("force-warns") {
|
||||
if !debugging_opts.unstable_options && matches.opt_present("force-warn") {
|
||||
early_error(
|
||||
error_format,
|
||||
"the `-Z unstable-options` flag must also be passed to enable \
|
||||
the flag `--force-warns=lints`",
|
||||
the flag `--force-warn=lints`",
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -20,24 +20,69 @@
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```no_run
|
||||
/// use std::alloc::{GlobalAlloc, Layout, alloc};
|
||||
/// ```
|
||||
/// use std::alloc::{GlobalAlloc, Layout};
|
||||
/// use std::cell::UnsafeCell;
|
||||
/// use std::ptr::null_mut;
|
||||
/// use std::sync::atomic::{
|
||||
/// AtomicUsize,
|
||||
/// Ordering::{Acquire, SeqCst},
|
||||
/// };
|
||||
///
|
||||
/// struct MyAllocator;
|
||||
///
|
||||
/// unsafe impl GlobalAlloc for MyAllocator {
|
||||
/// unsafe fn alloc(&self, _layout: Layout) -> *mut u8 { null_mut() }
|
||||
/// unsafe fn dealloc(&self, _ptr: *mut u8, _layout: Layout) {}
|
||||
/// const ARENA_SIZE: usize = 128 * 1024;
|
||||
/// const MAX_SUPPORTED_ALIGN: usize = 4096;
|
||||
/// #[repr(C, align(4096))] // 4096 == MAX_SUPPORTED_ALIGN
|
||||
/// struct SimpleAllocator {
|
||||
/// arena: UnsafeCell<[u8; ARENA_SIZE]>,
|
||||
/// remaining: AtomicUsize, // we allocate from the top, counting down
|
||||
/// }
|
||||
///
|
||||
/// #[global_allocator]
|
||||
/// static A: MyAllocator = MyAllocator;
|
||||
/// static ALLOCATOR: SimpleAllocator = SimpleAllocator {
|
||||
/// arena: UnsafeCell::new([0x55; ARENA_SIZE]),
|
||||
/// remaining: AtomicUsize::new(ARENA_SIZE),
|
||||
/// };
|
||||
///
|
||||
/// unsafe impl Sync for SimpleAllocator {}
|
||||
///
|
||||
/// unsafe impl GlobalAlloc for SimpleAllocator {
|
||||
/// unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
|
||||
/// let size = layout.size();
|
||||
/// let align = layout.align();
|
||||
///
|
||||
/// // `Layout` contract forbids making a `Layout` with align=0, or align not power of 2.
|
||||
/// // So we can safely use a mask to ensure alignment without worrying about UB.
|
||||
/// let align_mask_to_round_down = !(align - 1);
|
||||
///
|
||||
/// if align > MAX_SUPPORTED_ALIGN {
|
||||
/// return null_mut();
|
||||
/// }
|
||||
///
|
||||
/// let mut allocated = 0;
|
||||
/// if self
|
||||
/// .remaining
|
||||
/// .fetch_update(SeqCst, SeqCst, |mut remaining| {
|
||||
/// if size > remaining {
|
||||
/// return None;
|
||||
/// }
|
||||
/// remaining -= size;
|
||||
/// remaining &= align_mask_to_round_down;
|
||||
/// allocated = remaining;
|
||||
/// Some(remaining)
|
||||
/// })
|
||||
/// .is_err()
|
||||
/// {
|
||||
/// return null_mut();
|
||||
/// };
|
||||
/// (self.arena.get() as *mut u8).add(allocated)
|
||||
/// }
|
||||
/// unsafe fn dealloc(&self, _ptr: *mut u8, _layout: Layout) {}
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// unsafe {
|
||||
/// assert!(alloc(Layout::new::<u32>()).is_null())
|
||||
/// }
|
||||
/// let _s = format!("allocating a string!");
|
||||
/// let currently = ALLOCATOR.remaining.load(Acquire);
|
||||
/// println!("allocated so far: {}", ARENA_SIZE - currently);
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
|
@ -1,10 +1,10 @@
|
||||
# `force-warns`
|
||||
# `force-warn`
|
||||
|
||||
The tracking issue for this feature is: [#85512](https://github.com/rust-lang/rust/issues/85512).
|
||||
|
||||
------------------------
|
||||
|
||||
This feature allows you to cause any lint to produce a warning even if the lint has a different level by default or another level is set somewhere else. For instance, the `force-warns` option can be used to make a lint (e.g., `dead_code`) produce a warning even if that lint is allowed in code with `#![allow(dead_code)]`.
|
||||
This feature allows you to cause any lint to produce a warning even if the lint has a different level by default or another level is set somewhere else. For instance, the `force-warn` option can be used to make a lint (e.g., `dead_code`) produce a warning even if that lint is allowed in code with `#![allow(dead_code)]`.
|
||||
|
||||
## Example
|
||||
|
||||
@ -18,4 +18,4 @@ fn dead_function() {}
|
||||
fn main() {}
|
||||
```
|
||||
|
||||
We can force a warning to be produced by providing `--force-warns dead_code` to rustc.
|
||||
We can force a warning to be produced by providing `--force-warn dead_code` to rustc.
|
@ -1,6 +1,7 @@
|
||||
use clean::AttributesExt;
|
||||
|
||||
use std::cmp::Ordering;
|
||||
use std::fmt;
|
||||
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_hir as hir;
|
||||
@ -155,7 +156,7 @@ fn should_hide_fields(n_fields: usize) -> bool {
|
||||
n_fields > 12
|
||||
}
|
||||
|
||||
fn toggle_open(w: &mut Buffer, text: &str) {
|
||||
fn toggle_open(w: &mut Buffer, text: impl fmt::Display) {
|
||||
write!(
|
||||
w,
|
||||
"<details class=\"rustdoc-toggle type-contents-toggle\">\
|
||||
@ -481,6 +482,9 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra
|
||||
let consts = t.items.iter().filter(|m| m.is_associated_const()).collect::<Vec<_>>();
|
||||
let required = t.items.iter().filter(|m| m.is_ty_method()).collect::<Vec<_>>();
|
||||
let provided = t.items.iter().filter(|m| m.is_method()).collect::<Vec<_>>();
|
||||
let count_types = types.len();
|
||||
let count_consts = consts.len();
|
||||
let count_methods = required.len() + provided.len();
|
||||
|
||||
// Output the trait definition
|
||||
wrap_into_docblock(w, |w| {
|
||||
@ -511,9 +515,12 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra
|
||||
let mut toggle = false;
|
||||
|
||||
// If there are too many associated types, hide _everything_
|
||||
if should_hide_fields(types.len()) {
|
||||
if should_hide_fields(count_types) {
|
||||
toggle = true;
|
||||
toggle_open(w, "associated items");
|
||||
toggle_open(
|
||||
w,
|
||||
format_args!("{} associated items", count_types + count_consts + count_methods),
|
||||
);
|
||||
}
|
||||
for t in &types {
|
||||
render_assoc_item(w, t, AssocItemLink::Anchor(None), ItemType::Trait, cx);
|
||||
@ -523,9 +530,18 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra
|
||||
// We also do this if the types + consts is large because otherwise we could
|
||||
// render a bunch of types and _then_ a bunch of consts just because both were
|
||||
// _just_ under the limit
|
||||
if !toggle && should_hide_fields(types.len() + consts.len()) {
|
||||
if !toggle && should_hide_fields(count_types + count_consts) {
|
||||
toggle = true;
|
||||
toggle_open(w, "associated constants and methods");
|
||||
toggle_open(
|
||||
w,
|
||||
format_args!(
|
||||
"{} associated constant{} and {} method{}",
|
||||
count_consts,
|
||||
pluralize(count_consts),
|
||||
count_methods,
|
||||
pluralize(count_methods),
|
||||
),
|
||||
);
|
||||
}
|
||||
if !types.is_empty() && !consts.is_empty() {
|
||||
w.write_str("\n");
|
||||
@ -534,9 +550,9 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra
|
||||
render_assoc_item(w, t, AssocItemLink::Anchor(None), ItemType::Trait, cx);
|
||||
w.write_str(";\n");
|
||||
}
|
||||
if !toggle && should_hide_fields(required.len() + provided.len()) {
|
||||
if !toggle && should_hide_fields(count_methods) {
|
||||
toggle = true;
|
||||
toggle_open(w, "methods");
|
||||
toggle_open(w, format_args!("{} methods", count_methods));
|
||||
}
|
||||
if !consts.is_empty() && !required.is_empty() {
|
||||
w.write_str("\n");
|
||||
@ -933,9 +949,10 @@ fn item_enum(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, e: &clean::Enum
|
||||
w.write_str(" {}");
|
||||
} else {
|
||||
w.write_str(" {\n");
|
||||
let toggle = should_hide_fields(e.variants.len());
|
||||
let count_variants = e.variants.len();
|
||||
let toggle = should_hide_fields(count_variants);
|
||||
if toggle {
|
||||
toggle_open(w, "variants");
|
||||
toggle_open(w, format_args!("{} variants", count_variants));
|
||||
}
|
||||
for v in &e.variants {
|
||||
w.write_str(" ");
|
||||
@ -1012,7 +1029,8 @@ fn item_enum(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, e: &clean::Enum
|
||||
|
||||
use crate::clean::Variant;
|
||||
if let clean::VariantItem(Variant::Struct(ref s)) = *variant.kind {
|
||||
toggle_open(w, "fields");
|
||||
let count_fields = s.fields.len();
|
||||
toggle_open(w, format_args!("{} field{}", count_fields, pluralize(count_fields)));
|
||||
let variant_id = cx.derive_id(format!(
|
||||
"{}.{}.fields",
|
||||
ItemType::Variant,
|
||||
@ -1385,7 +1403,7 @@ fn render_union(
|
||||
fields.iter().filter(|f| matches!(*f.kind, clean::StructFieldItem(..))).count();
|
||||
let toggle = should_hide_fields(count_fields);
|
||||
if toggle {
|
||||
toggle_open(w, "fields");
|
||||
toggle_open(w, format_args!("{} fields", count_fields));
|
||||
}
|
||||
|
||||
for field in fields {
|
||||
@ -1441,7 +1459,7 @@ fn render_struct(
|
||||
let has_visible_fields = count_fields > 0;
|
||||
let toggle = should_hide_fields(count_fields);
|
||||
if toggle {
|
||||
toggle_open(w, "fields");
|
||||
toggle_open(w, format_args!("{} fields", count_fields));
|
||||
}
|
||||
for field in fields {
|
||||
if let clean::StructFieldItem(ref ty) = *field.kind {
|
||||
@ -1618,3 +1636,7 @@ fn document_type_layout(w: &mut Buffer, cx: &Context<'_>, ty_def_id: DefId) {
|
||||
|
||||
writeln!(w, "</div>");
|
||||
}
|
||||
|
||||
fn pluralize(count: usize) -> &'static str {
|
||||
if count > 1 { "s" } else { "" }
|
||||
}
|
||||
|
@ -511,10 +511,10 @@ fn opts() -> Vec<RustcOptGroup> {
|
||||
"LEVEL",
|
||||
)
|
||||
}),
|
||||
unstable("force-warns", |o| {
|
||||
unstable("force-warn", |o| {
|
||||
o.optopt(
|
||||
"",
|
||||
"force-warns",
|
||||
"force-warn",
|
||||
"Lints that will warn even if allowed somewhere else",
|
||||
"LINTS",
|
||||
)
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
all:
|
||||
$(RUSTDOC) --output-format=json x.html 2>&1 | diff - output-format-json.stderr
|
||||
$(RUSTC) --force-warns dead_code x.rs 2>&1 | diff - force-warns.stderr
|
||||
$(RUSTC) --force-warn dead_code x.rs 2>&1 | diff - force-warn.stderr
|
||||
|
@ -1,2 +1,2 @@
|
||||
error: the `-Z unstable-options` flag must also be passed to enable the flag `--force-warns=lints`
|
||||
error: the `-Z unstable-options` flag must also be passed to enable the flag `--force-warn=lints`
|
||||
|
@ -9,7 +9,7 @@ pub struct PubStruct {
|
||||
|
||||
// @has 'toggle_item_contents/struct.BigPubStruct.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show fields'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 13 fields'
|
||||
pub struct BigPubStruct {
|
||||
pub a: usize,
|
||||
pub b: usize,
|
||||
@ -28,7 +28,7 @@ pub struct BigPubStruct {
|
||||
|
||||
// @has 'toggle_item_contents/union.BigUnion.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show fields'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 13 fields'
|
||||
pub union BigUnion {
|
||||
pub a: usize,
|
||||
pub b: usize,
|
||||
@ -63,7 +63,7 @@ pub struct PrivStruct {
|
||||
|
||||
// @has 'toggle_item_contents/enum.Enum.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show fields'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 2 fields'
|
||||
pub enum Enum {
|
||||
A, B, C,
|
||||
D {
|
||||
@ -72,9 +72,19 @@ pub enum Enum {
|
||||
}
|
||||
}
|
||||
|
||||
// @has 'toggle_item_contents/enum.EnumStructVariant.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 1 field'
|
||||
pub enum EnumStructVariant {
|
||||
A, B, C,
|
||||
D {
|
||||
a: u8,
|
||||
}
|
||||
}
|
||||
|
||||
// @has 'toggle_item_contents/enum.LargeEnum.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show variants'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 13 variants'
|
||||
pub enum LargeEnum {
|
||||
A, B, C, D, E, F(u8), G, H, I, J, K, L, M
|
||||
}
|
||||
@ -90,7 +100,7 @@ pub trait Trait {
|
||||
|
||||
// @has 'toggle_item_contents/trait.GinormousTrait.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show associated items'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 16 associated items'
|
||||
pub trait GinormousTrait {
|
||||
type A;
|
||||
type B;
|
||||
@ -113,7 +123,7 @@ pub trait GinormousTrait {
|
||||
|
||||
// @has 'toggle_item_contents/trait.HugeTrait.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show associated constants and methods'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 12 associated constants and 2 methods'
|
||||
pub trait HugeTrait {
|
||||
type A;
|
||||
const M: usize = 1;
|
||||
@ -133,9 +143,30 @@ pub trait HugeTrait {
|
||||
fn bar();
|
||||
}
|
||||
|
||||
// @has 'toggle_item_contents/trait.GiganticTrait.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 1 associated constant and 1 method'
|
||||
pub trait GiganticTrait {
|
||||
type A;
|
||||
type B;
|
||||
type C;
|
||||
type D;
|
||||
type E;
|
||||
type F;
|
||||
type G;
|
||||
type H;
|
||||
type I;
|
||||
type J;
|
||||
type K;
|
||||
type L;
|
||||
const M: usize = 1;
|
||||
#[must_use]
|
||||
fn foo();
|
||||
}
|
||||
|
||||
// @has 'toggle_item_contents/trait.BigTrait.html'
|
||||
// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show methods'
|
||||
// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 14 methods'
|
||||
pub trait BigTrait {
|
||||
type A;
|
||||
#[must_use]
|
||||
|
@ -4,7 +4,7 @@ warning: extern declarations without an explicit ABI are deprecated
|
||||
LL | extern fn foo() {}
|
||||
| ^^^^^^^^^^^^^^^ ABI should be specified here
|
||||
|
|
||||
= note: requested on the command line with `--force-warns missing-abi`
|
||||
= note: requested on the command line with `--force-warn missing-abi`
|
||||
= help: the default ABI is C
|
||||
|
||||
warning: 1 warning emitted
|
||||
|
@ -5,7 +5,7 @@
|
||||
//
|
||||
//[warn_deny] compile-flags: --warn missing_abi --deny missing_abi
|
||||
//[forbid_warn] compile-flags: --warn missing_abi --forbid missing_abi
|
||||
//[force_warn_deny] compile-flags: -Z unstable-options --force-warns missing_abi --allow missing_abi
|
||||
//[force_warn_deny] compile-flags: -Z unstable-options --force-warn missing_abi --allow missing_abi
|
||||
//[force_warn_deny] check-pass
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Checks that rustc correctly errors when passed an invalid lint with
|
||||
// `--force-warns`. This is a regression test for issue #86958.
|
||||
// `--force-warn`. This is a regression test for issue #86958.
|
||||
//
|
||||
// compile-flags: -Z unstable-options --force-warns foo-qux
|
||||
// compile-flags: -Z unstable-options --force-warn foo-qux
|
||||
// error-pattern: unknown lint: `foo_qux`
|
||||
|
||||
fn main() {}
|
||||
|
@ -1,14 +1,14 @@
|
||||
error[E0602]: unknown lint: `foo_qux`
|
||||
|
|
||||
= note: requested on the command line with `--force-warns foo_qux`
|
||||
= note: requested on the command line with `--force-warn foo_qux`
|
||||
|
||||
error[E0602]: unknown lint: `foo_qux`
|
||||
|
|
||||
= note: requested on the command line with `--force-warns foo_qux`
|
||||
= note: requested on the command line with `--force-warn foo_qux`
|
||||
|
||||
error[E0602]: unknown lint: `foo_qux`
|
||||
|
|
||||
= note: requested on the command line with `--force-warns foo_qux`
|
||||
= note: requested on the command line with `--force-warn foo_qux`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns elided_lifetimes_in_paths -Zunstable-options
|
||||
// compile-flags: --force-warn elided_lifetimes_in_paths -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
struct Foo<'a> {
|
||||
|
@ -4,7 +4,7 @@ warning: hidden lifetime parameters in types are deprecated
|
||||
LL | fn foo(x: &Foo) {}
|
||||
| ^^^- help: indicate the anonymous lifetime: `<'_>`
|
||||
|
|
||||
= note: requested on the command line with `--force-warns elided-lifetimes-in-paths`
|
||||
= note: requested on the command line with `--force-warn elided-lifetimes-in-paths`
|
||||
|
||||
warning: 1 warning emitted
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns const_err -Zunstable-options
|
||||
// compile-flags: --force-warn const_err -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(const_err)]
|
||||
|
@ -6,7 +6,7 @@ LL | const C: i32 = 1 / 0;
|
||||
| |
|
||||
| attempt to divide `1_i32` by zero
|
||||
|
|
||||
= note: requested on the command line with `--force-warns const-err`
|
||||
= note: requested on the command line with `--force-warn const-err`
|
||||
= 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>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns dead_code -Zunstable-options
|
||||
// compile-flags: --force-warn dead_code -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(dead_code)]
|
||||
|
@ -4,7 +4,7 @@ warning: function is never used: `dead_function`
|
||||
LL | fn dead_function() {}
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: requested on the command line with `--force-warns dead-code`
|
||||
= note: requested on the command line with `--force-warn dead-code`
|
||||
|
||||
warning: 1 warning emitted
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns const_err -Zunstable-options
|
||||
// compile-flags: --force-warn const_err -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
const C: i32 = 1 / 0;
|
||||
|
@ -6,7 +6,7 @@ LL | const C: i32 = 1 / 0;
|
||||
| |
|
||||
| attempt to divide `1_i32` by zero
|
||||
|
|
||||
= note: requested on the command line with `--force-warns const-err`
|
||||
= note: requested on the command line with `--force-warn const-err`
|
||||
= 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>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns dead_code -Zunstable-options
|
||||
// compile-flags: --force-warn dead_code -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(warnings)]
|
||||
|
@ -4,7 +4,7 @@ warning: function is never used: `dead_function`
|
||||
LL | fn dead_function() {}
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: requested on the command line with `--force-warns dead-code`
|
||||
= note: requested on the command line with `--force-warn dead-code`
|
||||
|
||||
warning: 1 warning emitted
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns nonstandard_style -Zunstable-options
|
||||
// compile-flags: --force-warn nonstandard_style -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(warnings)]
|
||||
|
@ -4,7 +4,7 @@ warning: function `FUNCTION` should have a snake case name
|
||||
LL | pub fn FUNCTION() {}
|
||||
| ^^^^^^^^ help: convert the identifier to snake case: `function`
|
||||
|
|
||||
= note: `--force-warns non-snake-case` implied by `--force-warns nonstandard-style`
|
||||
= note: `--force-warn non-snake-case` implied by `--force-warn nonstandard-style`
|
||||
|
||||
warning: 1 warning emitted
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns bare_trait_objects -Zunstable-options
|
||||
// compile-flags: --force-warn bare_trait_objects -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(rust_2018_idioms)]
|
||||
|
@ -4,7 +4,7 @@ warning: trait objects without an explicit `dyn` are deprecated
|
||||
LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
|
||||
|
|
||||
= note: requested on the command line with `--force-warns bare-trait-objects`
|
||||
= note: requested on the command line with `--force-warn bare-trait-objects`
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --cap-lints allow --force-warns bare_trait_objects -Zunstable-options
|
||||
// compile-flags: --cap-lints allow --force-warn bare_trait_objects -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
pub trait SomeTrait {}
|
@ -1,10 +1,10 @@
|
||||
warning: trait objects without an explicit `dyn` are deprecated
|
||||
--> $DIR/force-warns-cap-lints-allow.rs:6:25
|
||||
--> $DIR/force-warn-cap-lints-allow.rs:6:25
|
||||
|
|
||||
LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
|
||||
|
|
||||
= note: requested on the command line with `--force-warns bare-trait-objects`
|
||||
= note: requested on the command line with `--force-warn bare-trait-objects`
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --cap-lints warn --force-warns rust-2021-compatibility -Zunstable-options
|
||||
// compile-flags: --cap-lints warn --force-warn rust-2021-compatibility -Zunstable-options
|
||||
// check-pass
|
||||
#![allow(ellipsis_inclusive_range_patterns)]
|
||||
|
||||
|
@ -4,7 +4,7 @@ warning: `...` range patterns are deprecated
|
||||
LL | 0...100 => true,
|
||||
| ^^^ help: use `..=` for an inclusive range
|
||||
|
|
||||
= note: `--force-warns ellipsis-inclusive-range-patterns` implied by `--force-warns rust-2021-compatibility`
|
||||
= note: `--force-warn ellipsis-inclusive-range-patterns` implied by `--force-warn rust-2021-compatibility`
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns rust-2018-idioms -Zunstable-options
|
||||
// compile-flags: --force-warn rust-2018-idioms -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(bare_trait_objects)]
|
||||
|
@ -4,7 +4,7 @@ warning: trait objects without an explicit `dyn` are deprecated
|
||||
LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
|
||||
|
|
||||
= note: `--force-warns bare-trait-objects` implied by `--force-warns rust-2018-idioms`
|
||||
= note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2018-idioms`
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// compile-flags: --force-warns rust_2018_idioms -Zunstable-options
|
||||
// compile-flags: --force-warn rust_2018_idioms -Zunstable-options
|
||||
// check-pass
|
||||
|
||||
#![allow(rust_2018_idioms)]
|
||||
|
@ -4,7 +4,7 @@ warning: trait objects without an explicit `dyn` are deprecated
|
||||
LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
|
||||
|
|
||||
= note: `--force-warns bare-trait-objects` implied by `--force-warns rust-2018-idioms`
|
||||
= note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2018-idioms`
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
|
||||
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 27277d966b3cfa454d6dea7f724cb961c036251c
|
||||
Subproject commit 4e143fd131e0c16cefd008456e974236ca54e62e
|
@ -1 +1 @@
|
||||
Subproject commit fe00358888a24c64878abc15f09b0e60e16db9d6
|
||||
Subproject commit ea105f9396a9dab68e71efb06016b7c76c83ba7c
|
Loading…
Reference in New Issue
Block a user