mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Auto merge of #116455 - matthiaskrgr:rollup-p226a5u, r=matthiaskrgr
Rollup of 5 pull requests Successful merges: - #116220 (stabilize `Option::as_`(`mut_`)`slice`) - #116288 (Add Span to various smir types) - #116415 (Move subtyper below reveal_all and change reveal_all) - #116428 (Add a note to duplicate diagnostics) - #116452 (Do not assert that hidden types don't have erased regions.) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
cdca82c2c8
@ -1376,16 +1376,16 @@ impl HandlerInner {
|
||||
self.emitted_diagnostic_codes.insert(code.clone());
|
||||
}
|
||||
|
||||
let already_emitted = |this: &mut Self| {
|
||||
let already_emitted = {
|
||||
let mut hasher = StableHasher::new();
|
||||
diagnostic.hash(&mut hasher);
|
||||
let diagnostic_hash = hasher.finish();
|
||||
!this.emitted_diagnostics.insert(diagnostic_hash)
|
||||
!self.emitted_diagnostics.insert(diagnostic_hash)
|
||||
};
|
||||
|
||||
// Only emit the diagnostic if we've been asked to deduplicate or
|
||||
// haven't already emitted an equivalent diagnostic.
|
||||
if !(self.flags.deduplicate_diagnostics && already_emitted(self)) {
|
||||
if !(self.flags.deduplicate_diagnostics && already_emitted) {
|
||||
debug!(?diagnostic);
|
||||
debug!(?self.emitted_diagnostics);
|
||||
let already_emitted_sub = |sub: &mut SubDiagnostic| {
|
||||
@ -1401,6 +1401,11 @@ impl HandlerInner {
|
||||
};
|
||||
|
||||
diagnostic.children.extract_if(already_emitted_sub).for_each(|_| {});
|
||||
if already_emitted {
|
||||
diagnostic.note(
|
||||
"duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`",
|
||||
);
|
||||
}
|
||||
|
||||
self.emitter.emit_diagnostic(diagnostic);
|
||||
if diagnostic.is_error() {
|
||||
|
@ -5,7 +5,6 @@
|
||||
#![feature(box_patterns)]
|
||||
#![feature(min_specialization)]
|
||||
#![feature(control_flow_enum)]
|
||||
#![feature(option_as_slice)]
|
||||
#![recursion_limit = "256"]
|
||||
|
||||
#[macro_use]
|
||||
|
@ -24,6 +24,11 @@ impl<'a, 'tcx> MutVisitor<'tcx> for SubTypeChecker<'a, 'tcx> {
|
||||
rvalue: &mut Rvalue<'tcx>,
|
||||
location: Location,
|
||||
) {
|
||||
// We don't need to do anything for deref temps as they are
|
||||
// not part of the source code, but used for desugaring purposes.
|
||||
if self.local_decls[place.local].is_deref_temp() {
|
||||
return;
|
||||
}
|
||||
let mut place_ty = place.ty(self.local_decls, self.tcx).ty;
|
||||
let mut rval_ty = rvalue.ty(self.local_decls, self.tcx);
|
||||
// Not erasing this causes `Free Regions` errors in validator,
|
||||
@ -48,7 +53,6 @@ impl<'a, 'tcx> MutVisitor<'tcx> for SubTypeChecker<'a, 'tcx> {
|
||||
// // gets transformed to
|
||||
// let temp: rval_ty = rval;
|
||||
// let place: place_ty = temp as place_ty;
|
||||
//
|
||||
pub fn subtype_finder<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
|
||||
let patch = MirPatch::new(body);
|
||||
let mut checker = SubTypeChecker { tcx, patcher: patch, local_decls: &body.local_decls };
|
||||
|
@ -467,7 +467,6 @@ pub fn run_analysis_to_runtime_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'
|
||||
/// After this series of passes, no lifetime analysis based on borrowing can be done.
|
||||
fn run_analysis_cleanup_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
|
||||
let passes: &[&dyn MirPass<'tcx>] = &[
|
||||
&add_subtyping_projections::Subtyper,
|
||||
&cleanup_post_borrowck::CleanupPostBorrowck,
|
||||
&remove_noop_landing_pads::RemoveNoopLandingPads,
|
||||
&simplify::SimplifyCfg::EarlyOpt,
|
||||
@ -483,6 +482,7 @@ fn run_runtime_lowering_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
|
||||
// These next passes must be executed together
|
||||
&add_call_guards::CriticalCallEdges,
|
||||
&reveal_all::RevealAll, // has to be done before drop elaboration, since we need to drop opaque types, too.
|
||||
&add_subtyping_projections::Subtyper, // calling this after reveal_all ensures that we don't deal with opaque types
|
||||
&elaborate_drops::ElaborateDrops,
|
||||
// This will remove extraneous landing pads which are no longer
|
||||
// necessary as well as well as forcing any call in a non-unwinding
|
||||
|
@ -46,16 +46,18 @@ impl<'tcx> MutVisitor<'tcx> for RevealAllVisitor<'tcx> {
|
||||
.filter(|elem| !matches!(elem, ProjectionElem::OpaqueCast(_)))
|
||||
.collect::<Vec<_>>(),
|
||||
);
|
||||
self.super_place(place, _context, _location);
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn visit_constant(&mut self, constant: &mut ConstOperand<'tcx>, _: Location) {
|
||||
fn visit_constant(&mut self, constant: &mut ConstOperand<'tcx>, location: Location) {
|
||||
// We have to use `try_normalize_erasing_regions` here, since it's
|
||||
// possible that we visit impossible-to-satisfy where clauses here,
|
||||
// see #91745
|
||||
if let Ok(c) = self.tcx.try_normalize_erasing_regions(self.param_env, constant.const_) {
|
||||
constant.const_ = c;
|
||||
}
|
||||
self.super_constant(constant, location);
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
@ -15,7 +15,7 @@ use rustc_middle::mir::interpret::{alloc_range, AllocId};
|
||||
use rustc_middle::ty::{self, Ty, TyCtxt, Variance};
|
||||
use rustc_span::def_id::{CrateNum, DefId, LOCAL_CRATE};
|
||||
use rustc_target::abi::FieldIdx;
|
||||
use stable_mir::mir::{CopyNonOverlapping, UserTypeProjection, VariantIdx};
|
||||
use stable_mir::mir::{CopyNonOverlapping, Statement, UserTypeProjection, VariantIdx};
|
||||
use stable_mir::ty::{FloatTy, GenericParamDef, IntTy, Movability, RigidTy, Span, TyKind, UintTy};
|
||||
use stable_mir::{self, opaque, Context};
|
||||
use tracing::debug;
|
||||
@ -106,7 +106,14 @@ impl<'tcx> Context for Tables<'tcx> {
|
||||
.collect(),
|
||||
})
|
||||
.collect(),
|
||||
locals: mir.local_decls.iter().map(|decl| self.intern_ty(decl.ty)).collect(),
|
||||
locals: mir
|
||||
.local_decls
|
||||
.iter()
|
||||
.map(|decl| stable_mir::mir::LocalDecl {
|
||||
ty: self.intern_ty(decl.ty),
|
||||
span: decl.source_info.span.stable(self),
|
||||
})
|
||||
.collect(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -223,41 +230,64 @@ pub(crate) trait Stable<'tcx> {
|
||||
impl<'tcx> Stable<'tcx> for mir::Statement<'tcx> {
|
||||
type T = stable_mir::mir::Statement;
|
||||
fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T {
|
||||
use rustc_middle::mir::StatementKind::*;
|
||||
match &self.kind {
|
||||
Assign(assign) => {
|
||||
stable_mir::mir::Statement::Assign(assign.0.stable(tables), assign.1.stable(tables))
|
||||
}
|
||||
FakeRead(fake_read_place) => stable_mir::mir::Statement::FakeRead(
|
||||
fake_read_place.0.stable(tables),
|
||||
fake_read_place.1.stable(tables),
|
||||
Statement { kind: self.kind.stable(tables), span: self.source_info.span.stable(tables) }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> Stable<'tcx> for mir::StatementKind<'tcx> {
|
||||
type T = stable_mir::mir::StatementKind;
|
||||
fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T {
|
||||
match self {
|
||||
mir::StatementKind::Assign(assign) => stable_mir::mir::StatementKind::Assign(
|
||||
assign.0.stable(tables),
|
||||
assign.1.stable(tables),
|
||||
),
|
||||
SetDiscriminant { place: plc, variant_index: idx } => {
|
||||
stable_mir::mir::Statement::SetDiscriminant {
|
||||
place: plc.as_ref().stable(tables),
|
||||
variant_index: idx.stable(tables),
|
||||
mir::StatementKind::FakeRead(fake_read_place) => {
|
||||
stable_mir::mir::StatementKind::FakeRead(
|
||||
fake_read_place.0.stable(tables),
|
||||
fake_read_place.1.stable(tables),
|
||||
)
|
||||
}
|
||||
mir::StatementKind::SetDiscriminant { place, variant_index } => {
|
||||
stable_mir::mir::StatementKind::SetDiscriminant {
|
||||
place: place.as_ref().stable(tables),
|
||||
variant_index: variant_index.stable(tables),
|
||||
}
|
||||
}
|
||||
Deinit(place) => stable_mir::mir::Statement::Deinit(place.stable(tables)),
|
||||
StorageLive(place) => stable_mir::mir::Statement::StorageLive(place.stable(tables)),
|
||||
StorageDead(place) => stable_mir::mir::Statement::StorageDead(place.stable(tables)),
|
||||
Retag(retag, place) => {
|
||||
stable_mir::mir::Statement::Retag(retag.stable(tables), place.stable(tables))
|
||||
mir::StatementKind::Deinit(place) => {
|
||||
stable_mir::mir::StatementKind::Deinit(place.stable(tables))
|
||||
}
|
||||
PlaceMention(place) => stable_mir::mir::Statement::PlaceMention(place.stable(tables)),
|
||||
AscribeUserType(place_projection, variance) => {
|
||||
stable_mir::mir::Statement::AscribeUserType {
|
||||
|
||||
mir::StatementKind::StorageLive(place) => {
|
||||
stable_mir::mir::StatementKind::StorageLive(place.stable(tables))
|
||||
}
|
||||
|
||||
mir::StatementKind::StorageDead(place) => {
|
||||
stable_mir::mir::StatementKind::StorageDead(place.stable(tables))
|
||||
}
|
||||
mir::StatementKind::Retag(retag, place) => {
|
||||
stable_mir::mir::StatementKind::Retag(retag.stable(tables), place.stable(tables))
|
||||
}
|
||||
mir::StatementKind::PlaceMention(place) => {
|
||||
stable_mir::mir::StatementKind::PlaceMention(place.stable(tables))
|
||||
}
|
||||
mir::StatementKind::AscribeUserType(place_projection, variance) => {
|
||||
stable_mir::mir::StatementKind::AscribeUserType {
|
||||
place: place_projection.as_ref().0.stable(tables),
|
||||
projections: place_projection.as_ref().1.stable(tables),
|
||||
variance: variance.stable(tables),
|
||||
}
|
||||
}
|
||||
Coverage(coverage) => stable_mir::mir::Statement::Coverage(opaque(coverage)),
|
||||
Intrinsic(intrinstic) => {
|
||||
stable_mir::mir::Statement::Intrinsic(intrinstic.stable(tables))
|
||||
mir::StatementKind::Coverage(coverage) => {
|
||||
stable_mir::mir::StatementKind::Coverage(opaque(coverage))
|
||||
}
|
||||
ConstEvalCounter => stable_mir::mir::Statement::ConstEvalCounter,
|
||||
Nop => stable_mir::mir::Statement::Nop,
|
||||
mir::StatementKind::Intrinsic(intrinstic) => {
|
||||
stable_mir::mir::StatementKind::Intrinsic(intrinstic.stable(tables))
|
||||
}
|
||||
mir::StatementKind::ConstEvalCounter => {
|
||||
stable_mir::mir::StatementKind::ConstEvalCounter
|
||||
}
|
||||
mir::StatementKind::Nop => stable_mir::mir::StatementKind::Nop,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -806,11 +836,20 @@ impl<'tcx> Stable<'tcx> for mir::InlineAsmOperand<'tcx> {
|
||||
impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
|
||||
type T = stable_mir::mir::Terminator;
|
||||
fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T {
|
||||
use rustc_middle::mir::TerminatorKind::*;
|
||||
use stable_mir::mir::Terminator;
|
||||
match &self.kind {
|
||||
Goto { target } => Terminator::Goto { target: target.as_usize() },
|
||||
SwitchInt { discr, targets } => Terminator::SwitchInt {
|
||||
Terminator { kind: self.kind.stable(tables), span: self.source_info.span.stable(tables) }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> Stable<'tcx> for mir::TerminatorKind<'tcx> {
|
||||
type T = stable_mir::mir::TerminatorKind;
|
||||
fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T {
|
||||
use stable_mir::mir::TerminatorKind;
|
||||
match self {
|
||||
mir::TerminatorKind::Goto { target } => {
|
||||
TerminatorKind::Goto { target: target.as_usize() }
|
||||
}
|
||||
mir::TerminatorKind::SwitchInt { discr, targets } => TerminatorKind::SwitchInt {
|
||||
discr: discr.stable(tables),
|
||||
targets: targets
|
||||
.iter()
|
||||
@ -821,42 +860,60 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
|
||||
.collect(),
|
||||
otherwise: targets.otherwise().as_usize(),
|
||||
},
|
||||
UnwindResume => Terminator::Resume,
|
||||
UnwindTerminate(_) => Terminator::Abort,
|
||||
Return => Terminator::Return,
|
||||
Unreachable => Terminator::Unreachable,
|
||||
Drop { place, target, unwind, replace: _ } => Terminator::Drop {
|
||||
place: place.stable(tables),
|
||||
target: target.as_usize(),
|
||||
unwind: unwind.stable(tables),
|
||||
},
|
||||
Call { func, args, destination, target, unwind, call_source: _, fn_span: _ } => {
|
||||
Terminator::Call {
|
||||
func: func.stable(tables),
|
||||
args: args.iter().map(|arg| arg.stable(tables)).collect(),
|
||||
destination: destination.stable(tables),
|
||||
target: target.map(|t| t.as_usize()),
|
||||
mir::TerminatorKind::UnwindResume => TerminatorKind::Resume,
|
||||
mir::TerminatorKind::UnwindTerminate(_) => TerminatorKind::Abort,
|
||||
mir::TerminatorKind::Return => TerminatorKind::Return,
|
||||
mir::TerminatorKind::Unreachable => TerminatorKind::Unreachable,
|
||||
mir::TerminatorKind::Drop { place, target, unwind, replace: _ } => {
|
||||
TerminatorKind::Drop {
|
||||
place: place.stable(tables),
|
||||
target: target.as_usize(),
|
||||
unwind: unwind.stable(tables),
|
||||
}
|
||||
}
|
||||
Assert { cond, expected, msg, target, unwind } => Terminator::Assert {
|
||||
cond: cond.stable(tables),
|
||||
expected: *expected,
|
||||
msg: msg.stable(tables),
|
||||
target: target.as_usize(),
|
||||
mir::TerminatorKind::Call {
|
||||
func,
|
||||
args,
|
||||
destination,
|
||||
target,
|
||||
unwind,
|
||||
call_source: _,
|
||||
fn_span: _,
|
||||
} => TerminatorKind::Call {
|
||||
func: func.stable(tables),
|
||||
args: args.iter().map(|arg| arg.stable(tables)).collect(),
|
||||
destination: destination.stable(tables),
|
||||
target: target.map(|t| t.as_usize()),
|
||||
unwind: unwind.stable(tables),
|
||||
},
|
||||
InlineAsm { template, operands, options, line_spans, destination, unwind } => {
|
||||
Terminator::InlineAsm {
|
||||
template: format!("{template:?}"),
|
||||
operands: operands.iter().map(|operand| operand.stable(tables)).collect(),
|
||||
options: format!("{options:?}"),
|
||||
line_spans: format!("{line_spans:?}"),
|
||||
destination: destination.map(|d| d.as_usize()),
|
||||
mir::TerminatorKind::Assert { cond, expected, msg, target, unwind } => {
|
||||
TerminatorKind::Assert {
|
||||
cond: cond.stable(tables),
|
||||
expected: *expected,
|
||||
msg: msg.stable(tables),
|
||||
target: target.as_usize(),
|
||||
unwind: unwind.stable(tables),
|
||||
}
|
||||
}
|
||||
Yield { .. } | GeneratorDrop | FalseEdge { .. } | FalseUnwind { .. } => unreachable!(),
|
||||
mir::TerminatorKind::InlineAsm {
|
||||
template,
|
||||
operands,
|
||||
options,
|
||||
line_spans,
|
||||
destination,
|
||||
unwind,
|
||||
} => TerminatorKind::InlineAsm {
|
||||
template: format!("{template:?}"),
|
||||
operands: operands.iter().map(|operand| operand.stable(tables)).collect(),
|
||||
options: format!("{options:?}"),
|
||||
line_spans: format!("{line_spans:?}"),
|
||||
destination: destination.map(|d| d.as_usize()),
|
||||
unwind: unwind.stable(tables),
|
||||
},
|
||||
mir::TerminatorKind::Yield { .. }
|
||||
| mir::TerminatorKind::GeneratorDrop
|
||||
| mir::TerminatorKind::FalseEdge { .. }
|
||||
| mir::TerminatorKind::FalseUnwind { .. } => unreachable!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3116,9 +3116,6 @@ fn bind_generator_hidden_types_above<'tcx>(
|
||||
bty.instantiate(tcx, args)
|
||||
})
|
||||
.collect();
|
||||
if considering_regions {
|
||||
debug_assert!(!hidden_types.has_erased_regions());
|
||||
}
|
||||
let bound_vars =
|
||||
tcx.mk_bound_variable_kinds_from_iter(bound_vars.iter().chain(
|
||||
(num_bound_variables..counter).map(|_| ty::BoundVariableKind::Region(ty::BrAnon)),
|
||||
|
@ -5,7 +5,13 @@ use crate::{ty::Ty, Span};
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Body {
|
||||
pub blocks: Vec<BasicBlock>,
|
||||
pub locals: Vec<Ty>,
|
||||
pub locals: Vec<LocalDecl>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct LocalDecl {
|
||||
pub ty: Ty,
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
@ -15,7 +21,13 @@ pub struct BasicBlock {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum Terminator {
|
||||
pub struct Terminator {
|
||||
pub kind: TerminatorKind,
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum TerminatorKind {
|
||||
Goto {
|
||||
target: usize,
|
||||
},
|
||||
@ -179,7 +191,13 @@ pub enum NonDivergingIntrinsic {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum Statement {
|
||||
pub struct Statement {
|
||||
pub kind: StatementKind,
|
||||
pub span: Span,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum StatementKind {
|
||||
Assign(Place, Rvalue),
|
||||
FakeRead(FakeReadCause, Place),
|
||||
SetDiscriminant { place: Place, variant_index: VariantIdx },
|
||||
|
@ -743,8 +743,6 @@ impl<T> Option<T> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// #![feature(option_as_slice)]
|
||||
///
|
||||
/// assert_eq!(
|
||||
/// [Some(1234).as_slice(), None.as_slice()],
|
||||
/// [&[1234][..], &[][..]],
|
||||
@ -755,15 +753,13 @@ impl<T> Option<T> {
|
||||
/// borrowing) [`[_]::first`](slice::first):
|
||||
///
|
||||
/// ```rust
|
||||
/// #![feature(option_as_slice)]
|
||||
///
|
||||
/// for i in [Some(1234_u16), None] {
|
||||
/// assert_eq!(i.as_ref(), i.as_slice().first());
|
||||
/// }
|
||||
/// ```
|
||||
#[inline]
|
||||
#[must_use]
|
||||
#[unstable(feature = "option_as_slice", issue = "108545")]
|
||||
#[stable(feature = "option_as_slice", since = "CURRENT_RUSTC_VERSION")]
|
||||
pub fn as_slice(&self) -> &[T] {
|
||||
// SAFETY: When the `Option` is `Some`, we're using the actual pointer
|
||||
// to the payload, with a length of 1, so this is equivalent to
|
||||
@ -794,8 +790,6 @@ impl<T> Option<T> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// #![feature(option_as_slice)]
|
||||
///
|
||||
/// assert_eq!(
|
||||
/// [Some(1234).as_mut_slice(), None.as_mut_slice()],
|
||||
/// [&mut [1234][..], &mut [][..]],
|
||||
@ -806,8 +800,6 @@ impl<T> Option<T> {
|
||||
/// our original `Option`:
|
||||
///
|
||||
/// ```rust
|
||||
/// #![feature(option_as_slice)]
|
||||
///
|
||||
/// let mut x = Some(1234);
|
||||
/// x.as_mut_slice()[0] += 1;
|
||||
/// assert_eq!(x, Some(1235));
|
||||
@ -817,13 +809,11 @@ impl<T> Option<T> {
|
||||
/// is [`[_]::first_mut`](slice::first_mut):
|
||||
///
|
||||
/// ```rust
|
||||
/// #![feature(option_as_slice)]
|
||||
///
|
||||
/// assert_eq!(Some(123).as_mut_slice().first_mut(), Some(&mut 123))
|
||||
/// ```
|
||||
#[inline]
|
||||
#[must_use]
|
||||
#[unstable(feature = "option_as_slice", issue = "108545")]
|
||||
#[stable(feature = "option_as_slice", since = "CURRENT_RUSTC_VERSION")]
|
||||
pub fn as_mut_slice(&mut self) -> &mut [T] {
|
||||
// SAFETY: When the `Option` is `Some`, we're using the actual pointer
|
||||
// to the payload, with a length of 1, so this is equivalent to
|
||||
|
@ -7,12 +7,11 @@
|
||||
let mut _2: std::pin::Pin<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>;
|
||||
let mut _3: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
let mut _4: {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ let mut _6: bool;
|
||||
+ let mut _5: bool;
|
||||
scope 1 {
|
||||
debug _r => _1;
|
||||
}
|
||||
+ scope 2 (inlined g) {
|
||||
+ let mut _5: {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ }
|
||||
+ scope 3 (inlined Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>::new) {
|
||||
+ debug pointer => _3;
|
||||
@ -23,10 +22,10 @@
|
||||
+ }
|
||||
+ }
|
||||
+ scope 6 (inlined g::{closure#0}) {
|
||||
+ debug a => _6;
|
||||
+ let mut _7: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ let mut _8: u32;
|
||||
+ let mut _9: i32;
|
||||
+ debug a => _5;
|
||||
+ let mut _6: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ let mut _7: u32;
|
||||
+ let mut _8: i32;
|
||||
+ }
|
||||
|
||||
bb0: {
|
||||
@ -35,28 +34,25 @@
|
||||
StorageLive(_3);
|
||||
StorageLive(_4);
|
||||
- _4 = g() -> [return: bb1, unwind unreachable];
|
||||
+ StorageLive(_5);
|
||||
+ _5 = {generator@$DIR/inline_generator.rs:16:5: 16:8 (#0)};
|
||||
+ _4 = move (_5 as subtype {generator@$DIR/inline_generator.rs:16:5: 16:8});
|
||||
+ StorageDead(_5);
|
||||
+ _4 = {generator@$DIR/inline_generator.rs:16:5: 16:8 (#0)};
|
||||
+ _3 = &mut _4;
|
||||
+ _2 = Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}> { pointer: move _3 };
|
||||
+ StorageDead(_3);
|
||||
+ StorageLive(_5);
|
||||
+ _5 = const false;
|
||||
+ StorageLive(_6);
|
||||
+ _6 = const false;
|
||||
+ StorageLive(_7);
|
||||
+ StorageLive(_8);
|
||||
+ _7 = (_2.0: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8});
|
||||
+ _8 = discriminant((*_7));
|
||||
+ switchInt(move _8) -> [0: bb3, 1: bb7, 3: bb8, otherwise: bb9];
|
||||
+ _6 = (_2.0: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8});
|
||||
+ _7 = discriminant((*_6));
|
||||
+ switchInt(move _7) -> [0: bb3, 1: bb7, 3: bb8, otherwise: bb9];
|
||||
}
|
||||
|
||||
bb1: {
|
||||
- _3 = &mut _4;
|
||||
- _2 = Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>::new(move _3) -> [return: bb2, unwind unreachable];
|
||||
+ StorageDead(_8);
|
||||
+ StorageDead(_7);
|
||||
+ StorageDead(_6);
|
||||
+ StorageDead(_5);
|
||||
+ StorageDead(_2);
|
||||
+ drop(_4) -> [return: bb2, unwind unreachable];
|
||||
}
|
||||
@ -73,8 +69,8 @@
|
||||
bb3: {
|
||||
- StorageDead(_2);
|
||||
- drop(_4) -> [return: bb4, unwind unreachable];
|
||||
+ StorageLive(_9);
|
||||
+ switchInt(_6) -> [0: bb4, otherwise: bb5];
|
||||
+ StorageLive(_8);
|
||||
+ switchInt(_5) -> [0: bb4, otherwise: bb5];
|
||||
}
|
||||
|
||||
bb4: {
|
||||
@ -82,18 +78,18 @@
|
||||
- _0 = const ();
|
||||
- StorageDead(_1);
|
||||
- return;
|
||||
+ _9 = const 13_i32;
|
||||
+ _8 = const 13_i32;
|
||||
+ goto -> bb6;
|
||||
+ }
|
||||
+
|
||||
+ bb5: {
|
||||
+ _9 = const 7_i32;
|
||||
+ _8 = const 7_i32;
|
||||
+ goto -> bb6;
|
||||
+ }
|
||||
+
|
||||
+ bb6: {
|
||||
+ _1 = GeneratorState::<i32, bool>::Yielded(move _9);
|
||||
+ discriminant((*_7)) = 3;
|
||||
+ _1 = GeneratorState::<i32, bool>::Yielded(move _8);
|
||||
+ discriminant((*_6)) = 3;
|
||||
+ goto -> bb1;
|
||||
+ }
|
||||
+
|
||||
@ -102,10 +98,10 @@
|
||||
+ }
|
||||
+
|
||||
+ bb8: {
|
||||
+ StorageLive(_9);
|
||||
+ StorageDead(_9);
|
||||
+ _1 = GeneratorState::<i32, bool>::Complete(_6);
|
||||
+ discriminant((*_7)) = 1;
|
||||
+ StorageLive(_8);
|
||||
+ StorageDead(_8);
|
||||
+ _1 = GeneratorState::<i32, bool>::Complete(_5);
|
||||
+ discriminant((*_6)) = 1;
|
||||
+ goto -> bb1;
|
||||
+ }
|
||||
+
|
||||
|
@ -7,12 +7,11 @@
|
||||
let mut _2: std::pin::Pin<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>;
|
||||
let mut _3: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
let mut _4: {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ let mut _6: bool;
|
||||
+ let mut _5: bool;
|
||||
scope 1 {
|
||||
debug _r => _1;
|
||||
}
|
||||
+ scope 2 (inlined g) {
|
||||
+ let mut _5: {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ }
|
||||
+ scope 3 (inlined Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>::new) {
|
||||
+ debug pointer => _3;
|
||||
@ -23,10 +22,10 @@
|
||||
+ }
|
||||
+ }
|
||||
+ scope 6 (inlined g::{closure#0}) {
|
||||
+ debug a => _6;
|
||||
+ let mut _7: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ let mut _8: u32;
|
||||
+ let mut _9: i32;
|
||||
+ debug a => _5;
|
||||
+ let mut _6: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
|
||||
+ let mut _7: u32;
|
||||
+ let mut _8: i32;
|
||||
+ }
|
||||
|
||||
bb0: {
|
||||
@ -38,10 +37,7 @@
|
||||
- }
|
||||
-
|
||||
- bb1: {
|
||||
+ StorageLive(_5);
|
||||
+ _5 = {generator@$DIR/inline_generator.rs:16:5: 16:8 (#0)};
|
||||
+ _4 = move (_5 as subtype {generator@$DIR/inline_generator.rs:16:5: 16:8});
|
||||
+ StorageDead(_5);
|
||||
+ _4 = {generator@$DIR/inline_generator.rs:16:5: 16:8 (#0)};
|
||||
_3 = &mut _4;
|
||||
- _2 = Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>::new(move _3) -> [return: bb2, unwind: bb5];
|
||||
- }
|
||||
@ -50,20 +46,20 @@
|
||||
+ _2 = Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}> { pointer: move _3 };
|
||||
StorageDead(_3);
|
||||
- _1 = <{generator@$DIR/inline_generator.rs:16:5: 16:8} as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb5];
|
||||
+ StorageLive(_5);
|
||||
+ _5 = const false;
|
||||
+ StorageLive(_6);
|
||||
+ _6 = const false;
|
||||
+ StorageLive(_7);
|
||||
+ StorageLive(_8);
|
||||
+ _7 = (_2.0: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8});
|
||||
+ _8 = discriminant((*_7));
|
||||
+ switchInt(move _8) -> [0: bb5, 1: bb9, 3: bb10, otherwise: bb11];
|
||||
+ _6 = (_2.0: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8});
|
||||
+ _7 = discriminant((*_6));
|
||||
+ switchInt(move _7) -> [0: bb5, 1: bb9, 3: bb10, otherwise: bb11];
|
||||
}
|
||||
|
||||
- bb3: {
|
||||
+ bb1: {
|
||||
+ StorageDead(_8);
|
||||
+ StorageDead(_7);
|
||||
+ StorageDead(_6);
|
||||
+ StorageDead(_5);
|
||||
StorageDead(_2);
|
||||
- drop(_4) -> [return: bb4, unwind: bb6];
|
||||
+ drop(_4) -> [return: bb2, unwind: bb4];
|
||||
@ -89,23 +85,23 @@
|
||||
+ }
|
||||
+
|
||||
+ bb5: {
|
||||
+ StorageLive(_9);
|
||||
+ switchInt(_6) -> [0: bb6, otherwise: bb7];
|
||||
+ StorageLive(_8);
|
||||
+ switchInt(_5) -> [0: bb6, otherwise: bb7];
|
||||
+ }
|
||||
+
|
||||
+ bb6: {
|
||||
+ _9 = const 13_i32;
|
||||
+ _8 = const 13_i32;
|
||||
+ goto -> bb8;
|
||||
+ }
|
||||
+
|
||||
+ bb7: {
|
||||
+ _9 = const 7_i32;
|
||||
+ _8 = const 7_i32;
|
||||
+ goto -> bb8;
|
||||
+ }
|
||||
+
|
||||
+ bb8: {
|
||||
+ _1 = GeneratorState::<i32, bool>::Yielded(move _9);
|
||||
+ discriminant((*_7)) = 3;
|
||||
+ _1 = GeneratorState::<i32, bool>::Yielded(move _8);
|
||||
+ discriminant((*_6)) = 3;
|
||||
+ goto -> bb1;
|
||||
+ }
|
||||
+
|
||||
@ -114,10 +110,10 @@
|
||||
+ }
|
||||
+
|
||||
+ bb10: {
|
||||
+ StorageLive(_9);
|
||||
+ StorageDead(_9);
|
||||
+ _1 = GeneratorState::<i32, bool>::Complete(_6);
|
||||
+ discriminant((*_7)) = 1;
|
||||
+ StorageLive(_8);
|
||||
+ StorageDead(_8);
|
||||
+ _1 = GeneratorState::<i32, bool>::Complete(_5);
|
||||
+ discriminant((*_6)) = 1;
|
||||
+ goto -> bb1;
|
||||
+ }
|
||||
+
|
||||
|
@ -28,6 +28,8 @@ LL | |
|
||||
LL | | /// main;
|
||||
LL | | /// ```
|
||||
| |_______^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -22,6 +22,7 @@ LL | /// [1]
|
||||
| ^ no item named `1` in scope
|
||||
|
|
||||
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -169,6 +169,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | <Self as SVec>::Item<'a>,
|
||||
@ -185,6 +186,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | <Self as SVec>::Item<T>,
|
||||
@ -201,6 +203,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | Output = <Index<<Self as SVec>::Item<'a>,
|
||||
@ -217,6 +220,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | Output = <Index<<Self as SVec>::Item<T>,
|
||||
@ -233,6 +237,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
|
||||
@ -249,6 +254,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
|
||||
@ -265,6 +271,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
|
||||
@ -281,6 +288,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item> as SVec>::Item<T>,
|
||||
@ -327,6 +335,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | <Self as SVec>::Item<'a>,
|
||||
@ -343,6 +352,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | <Self as SVec>::Item<T>,
|
||||
@ -359,6 +369,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | Output = <Index<<Self as SVec>::Item<'a>,
|
||||
@ -375,6 +386,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | Output = <Index<<Self as SVec>::Item<T>,
|
||||
@ -391,6 +403,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
|
||||
@ -407,6 +420,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
|
||||
@ -423,6 +437,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
|
||||
@ -439,6 +454,7 @@ note: associated type defined here, with 1 generic parameter: `T`
|
||||
|
|
||||
LL | type Item<'a, T>;
|
||||
| ^^^^ -
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing generic argument
|
||||
|
|
||||
LL | Output = <Self as SVec>::Item> as SVec>::Item<T>,
|
||||
|
@ -1,12 +1,7 @@
|
||||
// compile-flags: -Zdeduplicate-diagnostics=yes
|
||||
#![deny(unknown_lints)]
|
||||
//~^ NOTE defined here
|
||||
#![allow(rustdoc::missing_doc_code_examples)]
|
||||
//~^ ERROR unknown lint
|
||||
//~| ERROR unknown lint
|
||||
//~| ERROR unknown lint
|
||||
//~| NOTE lint is unstable
|
||||
//~| NOTE lint is unstable
|
||||
//~| NOTE lint is unstable
|
||||
//~| NOTE see issue
|
||||
//~| NOTE see issue
|
||||
//~| NOTE see issue
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: unknown lint: `rustdoc::missing_doc_code_examples`
|
||||
--> $DIR/feature-gate-rustdoc_missing_doc_code_examples.rs:3:1
|
||||
--> $DIR/feature-gate-rustdoc_missing_doc_code_examples.rs:4:1
|
||||
|
|
||||
LL | #![allow(rustdoc::missing_doc_code_examples)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -8,30 +8,10 @@ LL | #![allow(rustdoc::missing_doc_code_examples)]
|
||||
= note: see issue #101730 <https://github.com/rust-lang/rust/issues/101730> for more information
|
||||
= help: add `#![feature(rustdoc_missing_doc_code_examples)]` to the crate attributes to enable
|
||||
note: the lint level is defined here
|
||||
--> $DIR/feature-gate-rustdoc_missing_doc_code_examples.rs:1:9
|
||||
--> $DIR/feature-gate-rustdoc_missing_doc_code_examples.rs:2:9
|
||||
|
|
||||
LL | #![deny(unknown_lints)]
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error: unknown lint: `rustdoc::missing_doc_code_examples`
|
||||
--> $DIR/feature-gate-rustdoc_missing_doc_code_examples.rs:3:1
|
||||
|
|
||||
LL | #![allow(rustdoc::missing_doc_code_examples)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: the `rustdoc::missing_doc_code_examples` lint is unstable
|
||||
= note: see issue #101730 <https://github.com/rust-lang/rust/issues/101730> for more information
|
||||
= help: add `#![feature(rustdoc_missing_doc_code_examples)]` to the crate attributes to enable
|
||||
|
||||
error: unknown lint: `rustdoc::missing_doc_code_examples`
|
||||
--> $DIR/feature-gate-rustdoc_missing_doc_code_examples.rs:3:1
|
||||
|
|
||||
LL | #![allow(rustdoc::missing_doc_code_examples)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: the `rustdoc::missing_doc_code_examples` lint is unstable
|
||||
= note: see issue #101730 <https://github.com/rust-lang/rust/issues/101730> for more information
|
||||
= help: add `#![feature(rustdoc_missing_doc_code_examples)]` to the crate attributes to enable
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -302,6 +302,7 @@ LL | | /// level changes.
|
||||
= help: if you meant to use a literal backtick, escape it
|
||||
change: or `None` if it isn't.
|
||||
to this: or `None\` if it isn't.
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: unescaped backtick
|
||||
--> $DIR/unescaped_backticks.rs:323:5
|
||||
@ -321,6 +322,7 @@ LL | | /// level changes.
|
||||
= help: if you meant to use a literal backtick, escape it
|
||||
change: `on_event` should be called.
|
||||
to this: `on_event\` should be called.
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: unescaped backtick
|
||||
--> $DIR/unescaped_backticks.rs:323:5
|
||||
@ -340,6 +342,7 @@ LL | | /// level changes.
|
||||
= help: if you meant to use a literal backtick, escape it
|
||||
change: [`rebuild_interest_cache`][rebuild] is called after the value of the max
|
||||
to this: [`rebuild_interest_cache\`][rebuild] is called after the value of the max
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: unescaped backtick
|
||||
--> $DIR/unescaped_backticks.rs:349:56
|
||||
|
@ -27,6 +27,8 @@ LL | #![forbid(test_lint)]
|
||||
...
|
||||
LL | #[allow(test_lint)]
|
||||
| ^^^^^^^^^ overruled by previous forbid
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: use of deprecated attribute `plugin`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
|
||||
--> $DIR/lint-plugin-forbid-attrs.rs:5:1
|
||||
|
@ -21,6 +21,7 @@ LL | #[allow(test_lint)]
|
||||
| ^^^^^^^^^ overruled by previous forbid
|
||||
|
|
||||
= note: `forbid` lint level was set on command line
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: use of deprecated attribute `plugin`: compiler plugins are deprecated. See https://github.com/rust-lang/rust/pull/64675
|
||||
--> $DIR/lint-plugin-forbid-cmdline.rs:6:1
|
||||
|
@ -8,6 +8,7 @@ warning: lint name `test_lint` is deprecated and may not have an effect in the f
|
||||
|
|
||||
= help: change it to clippy::test_lint
|
||||
= note: requested on the command line with `-A test_lint`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: item is named 'lintme'
|
||||
--> $DIR/lint-tool-cmdline-allow.rs:9:1
|
||||
@ -29,6 +30,7 @@ warning: lint name `test_lint` is deprecated and may not have an effect in the f
|
||||
|
|
||||
= help: change it to clippy::test_lint
|
||||
= note: requested on the command line with `-A test_lint`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 5 warnings emitted
|
||||
|
||||
|
@ -23,12 +23,16 @@ warning: lint name `test_lint` is deprecated and may not have an effect in the f
|
||||
|
|
||||
LL | #![cfg_attr(foo, warn(test_lint))]
|
||||
| ^^^^^^^^^ help: change it to: `clippy::test_lint`
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: lint name `clippy_group` is deprecated and may not have an effect in the future.
|
||||
--> $DIR/lint-tool-test.rs:13:9
|
||||
|
|
||||
LL | #![deny(clippy_group)]
|
||||
| ^^^^^^^^^^^^ help: change it to: `clippy::group`
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: item is named 'lintme'
|
||||
--> $DIR/lint-tool-test.rs:18:1
|
||||
@ -56,6 +60,8 @@ warning: lint name `test_group` is deprecated and may not have an effect in the
|
||||
|
|
||||
LL | #[allow(test_group)]
|
||||
| ^^^^^^^^^^ help: change it to: `clippy::test_group`
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `this_lint_does_not_exist`
|
||||
--> $DIR/lint-tool-test.rs:33:8
|
||||
@ -78,18 +84,24 @@ warning: lint name `test_lint` is deprecated and may not have an effect in the f
|
||||
|
|
||||
LL | #![cfg_attr(foo, warn(test_lint))]
|
||||
| ^^^^^^^^^ help: change it to: `clippy::test_lint`
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: lint name `clippy_group` is deprecated and may not have an effect in the future.
|
||||
--> $DIR/lint-tool-test.rs:13:9
|
||||
|
|
||||
LL | #![deny(clippy_group)]
|
||||
| ^^^^^^^^^^^^ help: change it to: `clippy::group`
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: lint name `test_group` is deprecated and may not have an effect in the future.
|
||||
--> $DIR/lint-tool-test.rs:29:9
|
||||
|
|
||||
LL | #[allow(test_group)]
|
||||
| ^^^^^^^^^^ help: change it to: `clippy::test_group`
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors; 11 warnings emitted
|
||||
|
||||
|
@ -414,6 +414,8 @@ error: `#[lint(...)]` is not a valid attribute
|
||||
|
|
||||
LL | #[lint(no_crate_example, code = "E0123")]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: diagnostic slug not specified
|
||||
--> $DIR/diagnostic-derive.rs:601:1
|
||||
|
@ -47,12 +47,12 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
assert_eq!(body.blocks.len(), 1);
|
||||
let block = &body.blocks[0];
|
||||
assert_eq!(block.statements.len(), 1);
|
||||
match &block.statements[0] {
|
||||
stable_mir::mir::Statement::Assign(..) => {}
|
||||
match &block.statements[0].kind {
|
||||
stable_mir::mir::StatementKind::Assign(..) => {}
|
||||
other => panic!("{other:?}"),
|
||||
}
|
||||
match &block.terminator {
|
||||
stable_mir::mir::Terminator::Return => {}
|
||||
match &block.terminator.kind {
|
||||
stable_mir::mir::TerminatorKind::Return => {}
|
||||
other => panic!("{other:?}"),
|
||||
}
|
||||
|
||||
@ -61,8 +61,8 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
assert_eq!(body.locals.len(), 7);
|
||||
assert_eq!(body.blocks.len(), 4);
|
||||
let block = &body.blocks[0];
|
||||
match &block.terminator {
|
||||
stable_mir::mir::Terminator::Call { .. } => {}
|
||||
match &block.terminator.kind {
|
||||
stable_mir::mir::TerminatorKind::Call { .. } => {}
|
||||
other => panic!("{other:?}"),
|
||||
}
|
||||
|
||||
@ -70,27 +70,27 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
let body = types.body();
|
||||
assert_eq!(body.locals.len(), 6);
|
||||
assert_matches!(
|
||||
body.locals[0].kind(),
|
||||
body.locals[0].ty.kind(),
|
||||
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Bool)
|
||||
);
|
||||
assert_matches!(
|
||||
body.locals[1].kind(),
|
||||
body.locals[1].ty.kind(),
|
||||
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Bool)
|
||||
);
|
||||
assert_matches!(
|
||||
body.locals[2].kind(),
|
||||
body.locals[2].ty.kind(),
|
||||
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Char)
|
||||
);
|
||||
assert_matches!(
|
||||
body.locals[3].kind(),
|
||||
body.locals[3].ty.kind(),
|
||||
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Int(stable_mir::ty::IntTy::I32))
|
||||
);
|
||||
assert_matches!(
|
||||
body.locals[4].kind(),
|
||||
body.locals[4].ty.kind(),
|
||||
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Uint(stable_mir::ty::UintTy::U64))
|
||||
);
|
||||
assert_matches!(
|
||||
body.locals[5].kind(),
|
||||
body.locals[5].ty.kind(),
|
||||
stable_mir::ty::TyKind::RigidTy(stable_mir::ty::RigidTy::Float(
|
||||
stable_mir::ty::FloatTy::F64
|
||||
))
|
||||
@ -100,8 +100,8 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
let body = drop.body();
|
||||
assert_eq!(body.blocks.len(), 2);
|
||||
let block = &body.blocks[0];
|
||||
match &block.terminator {
|
||||
stable_mir::mir::Terminator::Drop { .. } => {}
|
||||
match &block.terminator.kind {
|
||||
stable_mir::mir::TerminatorKind::Drop { .. } => {}
|
||||
other => panic!("{other:?}"),
|
||||
}
|
||||
|
||||
@ -109,15 +109,15 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
let body = assert.body();
|
||||
assert_eq!(body.blocks.len(), 2);
|
||||
let block = &body.blocks[0];
|
||||
match &block.terminator {
|
||||
stable_mir::mir::Terminator::Assert { .. } => {}
|
||||
match &block.terminator.kind {
|
||||
stable_mir::mir::TerminatorKind::Assert { .. } => {}
|
||||
other => panic!("{other:?}"),
|
||||
}
|
||||
|
||||
let monomorphic = get_item(&items, (DefKind::Fn, "monomorphic")).unwrap();
|
||||
for block in monomorphic.body().blocks {
|
||||
match &block.terminator {
|
||||
stable_mir::mir::Terminator::Call { func, .. } => match func {
|
||||
match &block.terminator.kind {
|
||||
stable_mir::mir::TerminatorKind::Call { func, .. } => match func {
|
||||
stable_mir::mir::Operand::Constant(c) => match &c.literal.literal {
|
||||
stable_mir::ty::ConstantKind::Allocated(alloc) => {
|
||||
assert!(alloc.bytes.is_empty());
|
||||
@ -127,7 +127,7 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
mut args,
|
||||
)) => {
|
||||
let func = def.body();
|
||||
match func.locals[1]
|
||||
match func.locals[1].ty
|
||||
.fold(&mut args)
|
||||
.continue_value()
|
||||
.unwrap()
|
||||
@ -149,7 +149,7 @@ fn test_stable_mir(_tcx: TyCtxt<'_>) -> ControlFlow<()> {
|
||||
},
|
||||
other => panic!("{other:?}"),
|
||||
},
|
||||
stable_mir::mir::Terminator::Return => {}
|
||||
stable_mir::mir::TerminatorKind::Return => {}
|
||||
other => panic!("{other:?}"),
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ LL | static A: usize = 0;
|
||||
| ^^^^^ the trait `GlobalAlloc` is not implemented for `usize`
|
||||
|
|
||||
= help: the trait `GlobalAlloc` is implemented for `System`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the attribute macro `global_allocator` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `usize: GlobalAlloc` is not satisfied
|
||||
@ -29,6 +30,7 @@ LL | static A: usize = 0;
|
||||
| ^^^^^ the trait `GlobalAlloc` is not implemented for `usize`
|
||||
|
|
||||
= help: the trait `GlobalAlloc` is implemented for `System`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the attribute macro `global_allocator` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0277]: the trait bound `usize: GlobalAlloc` is not satisfied
|
||||
@ -40,6 +42,7 @@ LL | static A: usize = 0;
|
||||
| ^^^^^ the trait `GlobalAlloc` is not implemented for `usize`
|
||||
|
|
||||
= help: the trait `GlobalAlloc` is implemented for `System`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the attribute macro `global_allocator` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
@ -24,6 +24,7 @@ note: erroneous constant encountered
|
||||
LL | assert_eq!(<() as Tr>::B, 0); // causes the error above
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this note originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -15,6 +15,7 @@ LL | fn bar(_: Foo<for<'a> fn(&'a ())>::Assoc) {}
|
||||
|
|
||||
= note: expected struct `Foo<fn(&'static ())>`
|
||||
found struct `Foo<for<'a> fn(&'a ())>`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -373,6 +373,8 @@ LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
|
||||
| ---------- ^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/duplicate.rs:197:34
|
||||
@ -389,6 +391,8 @@ LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
|
||||
| ---------- ^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/duplicate.rs:200:37
|
||||
@ -405,6 +409,8 @@ LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
|
||||
| ------------- ^^^^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/duplicate.rs:205:29
|
||||
@ -445,6 +451,8 @@ LL | Self: Iterator<Item: Copy, Item: Send>,
|
||||
| ---------- ^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/duplicate.rs:230:32
|
||||
@ -461,6 +469,8 @@ LL | Self: Iterator<Item: Copy, Item: Copy>,
|
||||
| ---------- ^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/duplicate.rs:237:35
|
||||
@ -477,6 +487,8 @@ LL | Self: Iterator<Item: 'static, Item: 'static>,
|
||||
| ------------- ^^^^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/duplicate.rs:255:40
|
||||
|
@ -45,6 +45,7 @@ LL | trait Z<'a, T: ?Sized>
|
||||
...
|
||||
LL | for<'b> <T as Z<'b, u16>>::W: Clone,
|
||||
| ^^^^^ required by this bound in `Z`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -23,6 +23,7 @@ LL | | });
|
||||
|
|
||||
= note: `fn(&'0 ()) -> std::future::Ready<&'0 ()> {std::future::ready::<&'0 ()>}` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
|
||||
= note: ...but it actually implements `FnOnce<(&(),)>`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -44,6 +44,7 @@ note: the lifetime requirement is introduced here
|
||||
|
|
||||
LL | F: Future + Send + 'static,
|
||||
| ^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors; 1 warning emitted
|
||||
|
||||
|
@ -53,6 +53,7 @@ note: ...does not necessarily outlive the lifetime `'c` as defined here
|
||||
|
|
||||
LL | fn wrong_bound1<'b,'c,'d:'a+'c>(self, b: Inv<'b>, c: Inv<'c>, d: Inv<'d>) {
|
||||
| ^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0195]: lifetime parameters or bounds on method `wrong_bound2` do not match the trait declaration
|
||||
--> $DIR/regions-bound-missing-bound-in-impl.rs:42:20
|
||||
|
@ -25,6 +25,7 @@ LL | #![cfg_attr(foo, crate_type="bin")]
|
||||
|
|
||||
= 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 #91632 <https://github.com/rust-lang/rust/issues/91632>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: `crate_name` within an `#![cfg_attr] attribute is deprecated`
|
||||
--> $DIR/future-compat-crate-attributes-using-cfg_attr.rs:9:18
|
||||
@ -34,6 +35,7 @@ LL | #![cfg_attr(foo, crate_name="bar")]
|
||||
|
|
||||
= 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 #91632 <https://github.com/rust-lang/rust/issues/91632>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -74,6 +74,7 @@ LL | #[cfg(feature = $expr)]
|
||||
LL | generate_s10!(concat!("nonexistent"));
|
||||
| ------------------------------------- in this macro invocation
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the macro `generate_s10` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 11 previous errors
|
||||
|
@ -39,6 +39,7 @@ note: associated constant defined here
|
||||
|
|
||||
LL | const MODE: Mode;
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -15,6 +15,7 @@ LL | struct Outer<const I: Inner>;
|
||||
|
|
||||
= note: the only supported types are integers, `bool` and `char`
|
||||
= help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: `Inner` is forbidden as the type of a const generic parameter
|
||||
--> $DIR/issue-74950.rs:20:23
|
||||
@ -24,6 +25,7 @@ LL | struct Outer<const I: Inner>;
|
||||
|
|
||||
= note: the only supported types are integers, `bool` and `char`
|
||||
= help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: `Inner` is forbidden as the type of a const generic parameter
|
||||
--> $DIR/issue-74950.rs:20:23
|
||||
@ -33,6 +35,7 @@ LL | struct Outer<const I: Inner>;
|
||||
|
|
||||
= note: the only supported types are integers, `bool` and `char`
|
||||
= help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: `Inner` is forbidden as the type of a const generic parameter
|
||||
--> $DIR/issue-74950.rs:20:23
|
||||
@ -42,6 +45,7 @@ LL | struct Outer<const I: Inner>;
|
||||
|
|
||||
= note: the only supported types are integers, `bool` and `char`
|
||||
= help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
@ -27,6 +27,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | black_box((S::<i32>::FOO, S::<u32>::FOO));
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -24,6 +24,7 @@ note: erroneous constant encountered
|
||||
LL | println!("{}", <Bar<u16, u8> as Foo>::AMT);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -17,6 +17,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | let _ = PrintName::VOID;
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -40,6 +40,7 @@ help: the constant being evaluated
|
||||
|
|
||||
LL | const Y: u32 = simple_loop(35);
|
||||
| ^^^^^^^^^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: constant evaluation is taking a long time
|
||||
--> $DIR/ctfe-simple-loop.rs:9:5
|
||||
|
@ -1,5 +1,3 @@
|
||||
// only-x86_64
|
||||
|
||||
type Field1 = i32;
|
||||
type Field2 = f32;
|
||||
type Field3 = i64;
|
||||
|
@ -1,20 +1,22 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/union-const-eval-field.rs:28:37
|
||||
--> $DIR/union-const-eval-field.rs:26:37
|
||||
|
|
||||
LL | const FIELD3: Field3 = unsafe { UNION.field3 };
|
||||
| ^^^^^^^^^^^^ using uninitialized data, but this operation requires initialized memory
|
||||
|
||||
note: erroneous constant encountered
|
||||
--> $DIR/union-const-eval-field.rs:31:5
|
||||
--> $DIR/union-const-eval-field.rs:29:5
|
||||
|
|
||||
LL | FIELD3
|
||||
| ^^^^^^
|
||||
|
||||
note: erroneous constant encountered
|
||||
--> $DIR/union-const-eval-field.rs:31:5
|
||||
--> $DIR/union-const-eval-field.rs:29:5
|
||||
|
|
||||
LL | FIELD3
|
||||
| ^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
// compile-flags: -Zdeduplicate-diagnostics=yes
|
||||
|
||||
// This test of structural match checking enumerates the different kinds of
|
||||
// const definitions, collecting cases where the const pattern is rejected.
|
||||
//
|
||||
@ -78,9 +80,6 @@ fn main() {
|
||||
//~^ ERROR must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
//~| NOTE the traits must be derived
|
||||
//~| NOTE StructuralEq.html for details
|
||||
//~| ERROR must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
//~| NOTE the traits must be derived
|
||||
//~| NOTE StructuralEq.html for details
|
||||
|
||||
trait Trait: Sized { const ASSOC: Option<Self>; }
|
||||
impl Trait for NoDerive { const ASSOC: Option<NoDerive> = Some(NoDerive); }
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:40:36
|
||||
--> $DIR/reject_non_structural.rs:42:36
|
||||
|
|
||||
LL | match Derive::Some(NoDerive) { ENUM => dbg!(ENUM), _ => panic!("whoops"), };
|
||||
| ^^^^
|
||||
@ -8,7 +8,7 @@ LL | match Derive::Some(NoDerive) { ENUM => dbg!(ENUM), _ => panic!("whoops"
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:46:28
|
||||
--> $DIR/reject_non_structural.rs:48:28
|
||||
|
|
||||
LL | match Some(NoDerive) { FIELD => dbg!(FIELD), _ => panic!("whoops"), };
|
||||
| ^^^^^
|
||||
@ -17,7 +17,7 @@ LL | match Some(NoDerive) { FIELD => dbg!(FIELD), _ => panic!("whoops"), };
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:53:27
|
||||
--> $DIR/reject_non_structural.rs:55:27
|
||||
|
|
||||
LL | match Some(NoDerive) {INDIRECT => dbg!(INDIRECT), _ => panic!("whoops"), };
|
||||
| ^^^^^^^^
|
||||
@ -26,7 +26,7 @@ LL | match Some(NoDerive) {INDIRECT => dbg!(INDIRECT), _ => panic!("whoops")
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:59:36
|
||||
--> $DIR/reject_non_structural.rs:61:36
|
||||
|
|
||||
LL | match (None, Some(NoDerive)) { TUPLE => dbg!(TUPLE), _ => panic!("whoops"), };
|
||||
| ^^^^^
|
||||
@ -35,7 +35,7 @@ LL | match (None, Some(NoDerive)) { TUPLE => dbg!(TUPLE), _ => panic!("whoop
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:65:28
|
||||
--> $DIR/reject_non_structural.rs:67:28
|
||||
|
|
||||
LL | match Some(NoDerive) { TYPE_ASCRIPTION => dbg!(TYPE_ASCRIPTION), _ => panic!("whoops"), };
|
||||
| ^^^^^^^^^^^^^^^
|
||||
@ -44,7 +44,7 @@ LL | match Some(NoDerive) { TYPE_ASCRIPTION => dbg!(TYPE_ASCRIPTION), _ => p
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:71:36
|
||||
--> $DIR/reject_non_structural.rs:73:36
|
||||
|
|
||||
LL | match [None, Some(NoDerive)] { ARRAY => dbg!(ARRAY), _ => panic!("whoops"), };
|
||||
| ^^^^^
|
||||
@ -53,7 +53,7 @@ LL | match [None, Some(NoDerive)] { ARRAY => dbg!(ARRAY), _ => panic!("whoop
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:77:33
|
||||
--> $DIR/reject_non_structural.rs:79:33
|
||||
|
|
||||
LL | match [Some(NoDerive); 2] { REPEAT => dbg!(REPEAT), _ => panic!("whoops"), };
|
||||
| ^^^^^^
|
||||
@ -62,16 +62,7 @@ LL | match [Some(NoDerive); 2] { REPEAT => dbg!(REPEAT), _ => panic!("whoops
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:77:33
|
||||
|
|
||||
LL | match [Some(NoDerive); 2] { REPEAT => dbg!(REPEAT), _ => panic!("whoops"), };
|
||||
| ^^^^^^
|
||||
|
|
||||
= note: the traits must be derived, manual `impl`s are not sufficient
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:87:28
|
||||
--> $DIR/reject_non_structural.rs:86:28
|
||||
|
|
||||
LL | match Some(NoDerive) { NoDerive::ASSOC => dbg!(NoDerive::ASSOC), _ => panic!("whoops"), };
|
||||
| ^^^^^^^^^^^^^^^
|
||||
@ -80,7 +71,7 @@ LL | match Some(NoDerive) { NoDerive::ASSOC => dbg!(NoDerive::ASSOC), _ => p
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
error: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:93:28
|
||||
--> $DIR/reject_non_structural.rs:92:28
|
||||
|
|
||||
LL | match Some(NoDerive) { BLOCK => dbg!(BLOCK), _ => panic!("whoops"), };
|
||||
| ^^^^^
|
||||
@ -89,7 +80,7 @@ LL | match Some(NoDerive) { BLOCK => dbg!(BLOCK), _ => panic!("whoops"), };
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
|
||||
warning: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
|
||||
--> $DIR/reject_non_structural.rs:99:29
|
||||
--> $DIR/reject_non_structural.rs:98:29
|
||||
|
|
||||
LL | match &Some(NoDerive) { ADDR_OF => dbg!(ADDR_OF), _ => panic!("whoops"), };
|
||||
| ^^^^^^^
|
||||
@ -99,10 +90,10 @@ LL | match &Some(NoDerive) { ADDR_OF => dbg!(ADDR_OF), _ => panic!("whoops")
|
||||
= note: the traits must be derived, manual `impl`s are not sufficient
|
||||
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
|
||||
note: the lint level is defined here
|
||||
--> $DIR/reject_non_structural.rs:12:9
|
||||
--> $DIR/reject_non_structural.rs:14:9
|
||||
|
|
||||
LL | #![warn(indirect_structural_match)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 10 previous errors; 1 warning emitted
|
||||
error: aborting due to 9 previous errors; 1 warning emitted
|
||||
|
||||
|
@ -24,6 +24,7 @@ LL | | B = T,
|
||||
LL | | }
|
||||
| |_- in this macro invocation
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -21,6 +21,8 @@ error: ~const can only be applied to `#[const_trait]` traits
|
||||
|
|
||||
LL | T: ~const Fn<()> + ~const Destruct,
|
||||
| ^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: ~const can only be applied to `#[const_trait]` traits
|
||||
--> $DIR/fn_trait_refs.rs:22:15
|
||||
@ -33,6 +35,8 @@ error: ~const can only be applied to `#[const_trait]` traits
|
||||
|
|
||||
LL | T: ~const FnMut<()> + ~const Destruct,
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: ~const can only be applied to `#[const_trait]` traits
|
||||
--> $DIR/fn_trait_refs.rs:29:15
|
||||
@ -45,6 +49,8 @@ error: ~const can only be applied to `#[const_trait]` traits
|
||||
|
|
||||
LL | T: ~const FnOnce<()>,
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: ~const can only be applied to `#[const_trait]` traits
|
||||
--> $DIR/fn_trait_refs.rs:36:15
|
||||
@ -57,6 +63,8 @@ error: ~const can only be applied to `#[const_trait]` traits
|
||||
|
|
||||
LL | T: ~const Fn<()> + ~const Destruct,
|
||||
| ^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: ~const can only be applied to `#[const_trait]` traits
|
||||
--> $DIR/fn_trait_refs.rs:50:15
|
||||
@ -69,6 +77,8 @@ error: ~const can only be applied to `#[const_trait]` traits
|
||||
|
|
||||
LL | T: ~const FnMut<()> + ~const Destruct,
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 12 previous errors
|
||||
|
||||
|
@ -20,6 +20,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | let _: &'static _ = &C;
|
||||
| ^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -20,6 +20,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | let _: &'static _ = &C;
|
||||
| ^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -15,6 +15,7 @@ error[E0310]: the parameter type `T` may not live long enough
|
||||
LL | type_id: TypeId::of::<T>(),
|
||||
| ^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: consider adding an explicit lifetime bound...
|
||||
|
|
||||
LL | pub fn new<T: 'static>() -> &'static Self {
|
||||
|
@ -19,6 +19,7 @@ LL | const C2: &'static mut usize = unsafe { &mut S };
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -24,6 +24,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | let y = <String as Bar<Vec<u32>, String>>::F;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: skipping const checks
|
||||
|
|
||||
|
@ -15,6 +15,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | let y = <String as Bar<String>>::F;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -656,6 +656,8 @@ note: erroneous constant encountered
|
||||
|
|
||||
LL | dbg!(i32::CONSTANT);
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -8,3 +8,4 @@ use ::foo; //~ ERROR invalid metadata files for crate `foo`
|
||||
//~| NOTE failed to mmap file
|
||||
//~^^ ERROR invalid metadata files for crate `foo`
|
||||
//~| NOTE failed to mmap file
|
||||
//~| NOTE duplicate diagnostic
|
||||
|
@ -13,6 +13,7 @@ LL | use ::foo;
|
||||
| ^^^
|
||||
|
|
||||
= note: failed to mmap file 'auxiliary/libfoo.rlib'
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -15,12 +15,16 @@ error: cannot find derive macro `Unresolved` in this scope
|
||||
|
|
||||
LL | #[derive(Unresolved)]
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0452]: malformed lint attribute input
|
||||
--> $DIR/deduplicate-diagnostics.rs:8:8
|
||||
|
|
||||
LL | #[deny("literal")]
|
||||
| ^^^^^^^^^ bad attribute argument
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -21,6 +21,7 @@ note: unsafe traits like `Sync` should be implemented explicitly
|
||||
|
|
||||
LL | #[derive(Sync)]
|
||||
| ^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: cannot find derive macro `Send` in this scope
|
||||
--> $DIR/deriving-bounds.rs:1:10
|
||||
@ -45,6 +46,7 @@ note: unsafe traits like `Send` should be implemented explicitly
|
||||
|
|
||||
LL | #[derive(Send)]
|
||||
| ^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -15,6 +15,8 @@ LL | #[derive(Eqr)]
|
||||
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
||||
|
|
||||
= note: similarly named derive macro `Eq` defined here
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -9,6 +9,8 @@ error: cannot find derive macro `FromPrimitive` in this scope
|
||||
|
|
||||
LL | #[derive(FromPrimitive)]
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -35,6 +35,8 @@ warning: malformed `on_unimplemented` attribute
|
||||
|
|
||||
LL | #[diagnostic::on_unimplemented(unsupported = "foo")]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0277]: the trait bound `i32: Foo` is not satisfied
|
||||
--> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:31:14
|
||||
@ -60,6 +62,8 @@ warning: malformed `on_unimplemented` attribute
|
||||
|
|
||||
LL | #[diagnostic::on_unimplemented(message = "Boom", unsupported = "Bar")]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0277]: Boom
|
||||
--> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:33:14
|
||||
@ -85,6 +89,8 @@ warning: malformed `on_unimplemented` attribute
|
||||
|
|
||||
LL | #[diagnostic::on_unimplemented(message = "Boom", on(_Self = "i32", message = "whatever"))]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0277]: Boom
|
||||
--> $DIR/do_not_fail_parsing_on_invalid_options_1.rs:35:15
|
||||
|
@ -50,6 +50,7 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
@ -63,6 +64,7 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | fn function(x: &dyn SomeTrait, y: Box<SomeTrait>) {
|
||||
@ -76,6 +78,7 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
@ -89,6 +92,7 @@ LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | fn function(x: &SomeTrait, y: Box<dyn SomeTrait>) {
|
||||
|
@ -9,18 +9,24 @@ error[E0452]: malformed lint attribute input
|
||||
|
|
||||
LL | #![allow(foo = "")]
|
||||
| ^^^^^^^^ bad attribute argument
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0452]: malformed lint attribute input
|
||||
--> $DIR/E0452.rs:1:10
|
||||
|
|
||||
LL | #![allow(foo = "")]
|
||||
| ^^^^^^^^ bad attribute argument
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0452]: malformed lint attribute input
|
||||
--> $DIR/E0452.rs:1:10
|
||||
|
|
||||
LL | #![allow(foo = "")]
|
||||
| ^^^^^^^^ bad attribute argument
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -15,6 +15,8 @@ LL | #![forbid(non_snake_case)]
|
||||
LL |
|
||||
LL | #[allow(non_snake_case)]
|
||||
| ^^^^^^^^^^^^^^ overruled by previous forbid
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -6,10 +6,12 @@ warning[E0602]: unknown lint: `bogus`
|
||||
warning[E0602]: unknown lint: `bogus`
|
||||
|
|
||||
= note: requested on the command line with `-D bogus`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning[E0602]: unknown lint: `bogus`
|
||||
|
|
||||
= note: requested on the command line with `-D bogus`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -13,6 +13,8 @@ LL | trait Foo: Iterator<Item = i32, Item = i32> {}
|
||||
| ---------- ^^^^^^^^^^ re-bound here
|
||||
| |
|
||||
| `Item` bound here first
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
|
||||
--> $DIR/E0719.rs:7:42
|
||||
|
@ -9,6 +9,8 @@ error[E0789]: `rustc_allowed_through_unstable_modules` attribute must be paired
|
||||
|
|
||||
LL | struct Foo;
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -15,6 +15,7 @@ LL | #![warn(nonstandard_style, reason = "the standard should be respected")]
|
||||
|
|
||||
= note: see issue #54503 <https://github.com/rust-lang/rust/issues/54503> for more information
|
||||
= help: add `#![feature(lint_reasons)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -25,6 +25,7 @@ LL | #![deny(multiple_supertrait_upcastable)]
|
||||
|
|
||||
= note: the `multiple_supertrait_upcastable` lint is unstable
|
||||
= help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `multiple_supertrait_upcastable`
|
||||
--> $DIR/feature-gate-multiple_supertrait_upcastable.rs:7:1
|
||||
@ -34,6 +35,7 @@ LL | #![warn(multiple_supertrait_upcastable)]
|
||||
|
|
||||
= note: the `multiple_supertrait_upcastable` lint is unstable
|
||||
= help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `multiple_supertrait_upcastable`
|
||||
--> $DIR/feature-gate-multiple_supertrait_upcastable.rs:3:1
|
||||
@ -43,6 +45,7 @@ LL | #![deny(multiple_supertrait_upcastable)]
|
||||
|
|
||||
= note: the `multiple_supertrait_upcastable` lint is unstable
|
||||
= help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `multiple_supertrait_upcastable`
|
||||
--> $DIR/feature-gate-multiple_supertrait_upcastable.rs:7:1
|
||||
@ -52,6 +55,7 @@ LL | #![warn(multiple_supertrait_upcastable)]
|
||||
|
|
||||
= note: the `multiple_supertrait_upcastable` lint is unstable
|
||||
= help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 6 warnings emitted
|
||||
|
||||
|
@ -38,6 +38,7 @@ LL | #[allow(non_exhaustive_omitted_patterns)]
|
||||
= note: the `non_exhaustive_omitted_patterns` lint is unstable
|
||||
= note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
|
||||
= help: add `#![feature(non_exhaustive_omitted_patterns_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `non_exhaustive_omitted_patterns`
|
||||
--> $DIR/feature-gate-non_exhaustive_omitted_patterns_lint.rs:29:9
|
||||
@ -58,6 +59,7 @@ LL | #![deny(non_exhaustive_omitted_patterns)]
|
||||
= note: the `non_exhaustive_omitted_patterns` lint is unstable
|
||||
= note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
|
||||
= help: add `#![feature(non_exhaustive_omitted_patterns_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `non_exhaustive_omitted_patterns`
|
||||
--> $DIR/feature-gate-non_exhaustive_omitted_patterns_lint.rs:6:1
|
||||
@ -68,6 +70,7 @@ LL | #![allow(non_exhaustive_omitted_patterns)]
|
||||
= note: the `non_exhaustive_omitted_patterns` lint is unstable
|
||||
= note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
|
||||
= help: add `#![feature(non_exhaustive_omitted_patterns_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `non_exhaustive_omitted_patterns`
|
||||
--> $DIR/feature-gate-non_exhaustive_omitted_patterns_lint.rs:15:5
|
||||
@ -78,6 +81,7 @@ LL | #[allow(non_exhaustive_omitted_patterns)]
|
||||
= note: the `non_exhaustive_omitted_patterns` lint is unstable
|
||||
= note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
|
||||
= help: add `#![feature(non_exhaustive_omitted_patterns_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `non_exhaustive_omitted_patterns`
|
||||
--> $DIR/feature-gate-non_exhaustive_omitted_patterns_lint.rs:15:5
|
||||
@ -88,6 +92,7 @@ LL | #[allow(non_exhaustive_omitted_patterns)]
|
||||
= note: the `non_exhaustive_omitted_patterns` lint is unstable
|
||||
= note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
|
||||
= help: add `#![feature(non_exhaustive_omitted_patterns_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `non_exhaustive_omitted_patterns`
|
||||
--> $DIR/feature-gate-non_exhaustive_omitted_patterns_lint.rs:29:9
|
||||
@ -98,6 +103,7 @@ LL | #[warn(non_exhaustive_omitted_patterns)]
|
||||
= note: the `non_exhaustive_omitted_patterns` lint is unstable
|
||||
= note: see issue #89554 <https://github.com/rust-lang/rust/issues/89554> for more information
|
||||
= help: add `#![feature(non_exhaustive_omitted_patterns_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error[E0004]: non-exhaustive patterns: `Foo::C` not covered
|
||||
--> $DIR/feature-gate-non_exhaustive_omitted_patterns_lint.rs:20:11
|
||||
|
@ -28,6 +28,7 @@ LL | #![deny(fuzzy_provenance_casts)]
|
||||
= note: the `fuzzy_provenance_casts` lint is unstable
|
||||
= note: see issue #95228 <https://github.com/rust-lang/rust/issues/95228> for more information
|
||||
= help: add `#![feature(strict_provenance)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `lossy_provenance_casts`
|
||||
--> $DIR/feature-gate-strict_provenance.rs:7:1
|
||||
@ -38,6 +39,7 @@ LL | #![deny(lossy_provenance_casts)]
|
||||
= note: the `lossy_provenance_casts` lint is unstable
|
||||
= note: see issue #95228 <https://github.com/rust-lang/rust/issues/95228> for more information
|
||||
= help: add `#![feature(strict_provenance)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `fuzzy_provenance_casts`
|
||||
--> $DIR/feature-gate-strict_provenance.rs:3:1
|
||||
@ -48,6 +50,7 @@ LL | #![deny(fuzzy_provenance_casts)]
|
||||
= note: the `fuzzy_provenance_casts` lint is unstable
|
||||
= note: see issue #95228 <https://github.com/rust-lang/rust/issues/95228> for more information
|
||||
= help: add `#![feature(strict_provenance)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `lossy_provenance_casts`
|
||||
--> $DIR/feature-gate-strict_provenance.rs:7:1
|
||||
@ -58,6 +61,7 @@ LL | #![deny(lossy_provenance_casts)]
|
||||
= note: the `lossy_provenance_casts` lint is unstable
|
||||
= note: see issue #95228 <https://github.com/rust-lang/rust/issues/95228> for more information
|
||||
= help: add `#![feature(strict_provenance)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 6 warnings emitted
|
||||
|
||||
|
@ -16,6 +16,7 @@ LL | #![allow(test_unstable_lint)]
|
||||
|
|
||||
= note: the `test_unstable_lint` lint is unstable
|
||||
= help: add `#![feature(test_unstable_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `test_unstable_lint`
|
||||
--> $DIR/feature-gate-test_unstable_lint.rs:4:1
|
||||
@ -25,6 +26,7 @@ LL | #![allow(test_unstable_lint)]
|
||||
|
|
||||
= note: the `test_unstable_lint` lint is unstable
|
||||
= help: add `#![feature(test_unstable_lint)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -18,6 +18,7 @@ LL | #![warn(unnameable_types)]
|
||||
= note: the `unnameable_types` lint is unstable
|
||||
= note: see issue #48054 <https://github.com/rust-lang/rust/issues/48054> for more information
|
||||
= help: add `#![feature(type_privacy_lints)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: unknown lint: `unnameable_types`
|
||||
--> $DIR/feature-gate-type_privacy_lints.rs:3:1
|
||||
@ -28,6 +29,7 @@ LL | #![warn(unnameable_types)]
|
||||
= note: the `unnameable_types` lint is unstable
|
||||
= note: see issue #48054 <https://github.com/rust-lang/rust/issues/48054> for more information
|
||||
= help: add `#![feature(type_privacy_lints)]` to the crate attributes to enable
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -9,6 +9,8 @@ error: cannot find derive macro `x3300` in this scope
|
||||
|
|
||||
LL | #[derive(x3300)]
|
||||
| ^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: cannot find derive macro `x3300` in this scope
|
||||
--> $DIR/issue-43106-gating-of-derive-2.rs:9:14
|
||||
@ -21,6 +23,8 @@ error: cannot find derive macro `x3300` in this scope
|
||||
|
|
||||
LL | #[derive(x3300)]
|
||||
| ^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: cannot find derive macro `x3300` in this scope
|
||||
--> $DIR/issue-43106-gating-of-derive-2.rs:4:14
|
||||
@ -33,6 +37,8 @@ error: cannot find derive macro `x3300` in this scope
|
||||
|
|
||||
LL | #[derive(x3300)]
|
||||
| ^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
|
@ -25,6 +25,7 @@ note: associated type defined here, with 1 lifetime parameter: `'a`
|
||||
|
|
||||
LL | type Y<'a>;
|
||||
| ^ --
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | fn foo<'a, T1: X<Y<'a> = T1>>(t : T1) -> T1::Y<'a> {
|
||||
|
@ -9,6 +9,8 @@ error: `T` does not live long enough
|
||||
|
|
||||
LL | let _: for<'a> fn(<() as Foo<T>>::Type<'a>, &'a T) = |_, _| ();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -24,6 +24,7 @@ LL | | for<'a> fn(Inv<'a>, Inv<'a>)) }
|
||||
|
|
||||
= note: expected enum `Option<for<'a, 'b> fn(Inv<'a>, Inv<'b>)>`
|
||||
found enum `Option<for<'a> fn(Inv<'a>, Inv<'a>)>`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the macro `check` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -15,6 +15,7 @@ LL | fn b() { want_foo2::<SomeStruct>(); }
|
||||
|
|
||||
= note: `SomeStruct` must implement `Foo<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
|
||||
= note: ...but it actually implements `Foo<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -20,6 +20,7 @@ LL | fn ice() -> impl AsRef<Fn(&())> {
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | fn ice() -> impl AsRef<dyn Fn(&())> {
|
||||
@ -33,6 +34,7 @@ LL | fn ice() -> impl AsRef<Fn(&())> {
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | fn ice() -> impl AsRef<dyn Fn(&())> {
|
||||
|
18
tests/ui/impl-trait/impl-subtyper.rs
Normal file
18
tests/ui/impl-trait/impl-subtyper.rs
Normal file
@ -0,0 +1,18 @@
|
||||
// check-pass
|
||||
|
||||
#![crate_type = "lib"]
|
||||
fn checkpoints() -> impl Iterator {
|
||||
Some(()).iter().flat_map(|_| std::iter::once(()))
|
||||
}
|
||||
|
||||
fn block_checkpoints() -> impl Iterator {
|
||||
checkpoints()
|
||||
}
|
||||
|
||||
fn iter_raw() -> impl Iterator {
|
||||
let mut iter = block_checkpoints();
|
||||
|
||||
(0..9).map(move |_| {
|
||||
iter.next();
|
||||
})
|
||||
}
|
7
tests/ui/impl-trait/impl-subtyper2.rs
Normal file
7
tests/ui/impl-trait/impl-subtyper2.rs
Normal file
@ -0,0 +1,7 @@
|
||||
// check-pass
|
||||
|
||||
fn ages() -> Option<impl Iterator> {
|
||||
None::<std::slice::Iter<()>>
|
||||
}
|
||||
|
||||
fn main(){}
|
@ -9,6 +9,8 @@ error: type parameter `T` is part of concrete type but not used in parameter lis
|
||||
|
|
||||
LL | async {}
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -60,6 +60,7 @@ note: `date_range` could also refer to the function imported here
|
||||
LL | use prelude::*;
|
||||
| ^^^^^^^^^^
|
||||
= help: consider adding an explicit import of `date_range` to disambiguate
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 4 warnings emitted
|
||||
|
||||
|
@ -38,6 +38,7 @@ LL | #[derive(NonExistent)]
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: import resolution is stuck, try simplifying macro imports
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: cannot determine resolution for the derive macro `NonExistent`
|
||||
--> $DIR/issue-55457.rs:5:10
|
||||
@ -46,6 +47,7 @@ LL | #[derive(NonExistent)]
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: import resolution is stuck, try simplifying macro imports
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
|
@ -21,6 +21,7 @@ note: unsafe traits like `Sync` should be implemented explicitly
|
||||
|
|
||||
LL | Sync,
|
||||
| ^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -15,6 +15,7 @@ LL | foo(bar);
|
||||
|
|
||||
= note: expected trait object `dyn for<'a> Fn(&'a i32)`
|
||||
found trait object `dyn Fn(&i32)`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -9,6 +9,8 @@ error[E0433]: failed to resolve: partially resolved path in a derive macro
|
||||
|
|
||||
LL | #[derive(Foo::Anything)]
|
||||
| ^^^^^^^^^^^^^ partially resolved path in a derive macro
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -32,6 +32,7 @@ note: associated function defined here, with 0 generic parameters
|
||||
|
|
||||
LL | fn f() {}
|
||||
| ^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this error originates in the macro `impl_add` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -81,6 +81,7 @@ note: the lifetime requirement is introduced here
|
||||
|
|
||||
LL | fn thing(x: impl FnOnce(&u32, &u32, u32)) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: consider specifying the type of the closure parameters
|
||||
|
|
||||
LL | let f = |x: &_, y: &_, z: u32| ();
|
||||
|
@ -25,6 +25,7 @@ note: erroneous constant encountered
|
||||
LL | println!("Size: {}", std::mem::size_of::<[u8; u64::MAX as usize]>());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
= note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -6,10 +6,12 @@ warning[E0602]: unknown lint: `foo_qux`
|
||||
warning[E0602]: unknown lint: `foo_qux`
|
||||
|
|
||||
= note: requested on the command line with `--force-warn foo_qux`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning[E0602]: unknown lint: `foo_qux`
|
||||
|
|
||||
= note: requested on the command line with `--force-warn foo_qux`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -5,6 +5,7 @@ error[E0602]: unknown lint tool: `unknown_tool`
|
||||
error[E0602]: unknown lint tool: `unknown_tool`
|
||||
|
|
||||
= note: requested on the command line with `-A unknown_tool::foo`
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -27,36 +27,48 @@ error: allow(uncommon_codepoints) is ignored unless specified at crate level
|
||||
|
|
||||
LL | #![allow(uncommon_codepoints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(uncommon_codepoints) is ignored unless specified at crate level
|
||||
--> $DIR/crate_level_only_lint.rs:9:9
|
||||
|
|
||||
LL | #[allow(uncommon_codepoints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(uncommon_codepoints) is ignored unless specified at crate level
|
||||
--> $DIR/crate_level_only_lint.rs:17:9
|
||||
|
|
||||
LL | #[allow(uncommon_codepoints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(uncommon_codepoints) is ignored unless specified at crate level
|
||||
--> $DIR/crate_level_only_lint.rs:4:10
|
||||
|
|
||||
LL | #![allow(uncommon_codepoints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(uncommon_codepoints) is ignored unless specified at crate level
|
||||
--> $DIR/crate_level_only_lint.rs:9:9
|
||||
|
|
||||
LL | #[allow(uncommon_codepoints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(uncommon_codepoints) is ignored unless specified at crate level
|
||||
--> $DIR/crate_level_only_lint.rs:17:9
|
||||
|
|
||||
LL | #[allow(uncommon_codepoints)]
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
||||
|
@ -26,6 +26,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -38,6 +39,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -50,6 +52,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -62,6 +65,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -74,6 +78,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -86,6 +91,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -98,6 +104,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: allow(nonstandard_style) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-group-2.rs:7:9
|
||||
@ -110,6 +117,7 @@ LL | #[allow(nonstandard_style)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
||||
|
@ -22,6 +22,7 @@ LL | #[allow(unused_variables)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: allow(unused_variables) incompatible with previous forbid
|
||||
--> $DIR/forbid-group-member.rs:8:9
|
||||
@ -34,6 +35,7 @@ LL | #[allow(unused_variables)]
|
||||
|
|
||||
= 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 #81670 <https://github.com/rust-lang/rust/issues/81670>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
warning: 3 warnings emitted
|
||||
|
||||
|
@ -15,6 +15,8 @@ LL | #![forbid(unused_variables)]
|
||||
LL |
|
||||
LL | #[allow(unused)]
|
||||
| ^^^^^^ overruled by previous forbid
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -20,6 +20,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
@ -33,6 +34,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
@ -20,6 +20,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
@ -33,6 +34,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
@ -21,6 +21,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
@ -34,6 +35,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
@ -21,6 +21,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
@ -34,6 +35,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
@ -21,6 +21,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
@ -34,6 +35,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
|
||||
|
|
||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
||||
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
help: use `dyn`
|
||||
|
|
||||
LL | pub fn function(_x: Box<dyn SomeTrait>) {}
|
||||
|
@ -1,6 +1,8 @@
|
||||
error[E0602]: `warnings` lint group is not supported with ´--force-warn´
|
||||
|
||||
error[E0602]: `warnings` lint group is not supported with ´--force-warn´
|
||||
|
|
||||
= note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user