From 2e2c38e59be7d0308c8a58c0843e7af8d7211ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 10 Oct 2021 21:02:42 +0300 Subject: [PATCH 1/8] Mark `Arc::from_inner` / `Rc::from_inner` as unsafe While it's an internal function, it is easy to create invalid Arc/Rcs to a dangling pointer with it. Fixes https://github.com/rust-lang/rust/issues/89740 --- library/alloc/src/rc.rs | 51 ++++++++++++++++++++++++--------------- library/alloc/src/sync.rs | 26 +++++++++++--------- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/library/alloc/src/rc.rs b/library/alloc/src/rc.rs index 81e97805a7214..eff20efccc8be 100644 --- a/library/alloc/src/rc.rs +++ b/library/alloc/src/rc.rs @@ -333,12 +333,12 @@ impl Rc { unsafe { self.ptr.as_ref() } } - fn from_inner(ptr: NonNull>) -> Self { + unsafe fn from_inner(ptr: NonNull>) -> Self { Self { ptr, phantom: PhantomData } } unsafe fn from_ptr(ptr: *mut RcBox) -> Self { - Self::from_inner(unsafe { NonNull::new_unchecked(ptr) }) + unsafe { Self::from_inner(NonNull::new_unchecked(ptr)) } } } @@ -359,9 +359,11 @@ impl Rc { // pointers, which ensures that the weak destructor never frees // the allocation while the strong destructor is running, even // if the weak pointer is stored inside the strong one. - Self::from_inner( - Box::leak(box RcBox { strong: Cell::new(1), weak: Cell::new(1), value }).into(), - ) + unsafe { + Self::from_inner( + Box::leak(box RcBox { strong: Cell::new(1), weak: Cell::new(1), value }).into(), + ) + } } /// Constructs a new `Rc` using a weak reference to itself. Attempting @@ -412,16 +414,16 @@ impl Rc { // otherwise. let data = data_fn(&weak); - unsafe { + let strong = unsafe { let inner = init_ptr.as_ptr(); ptr::write(ptr::addr_of_mut!((*inner).value), data); let prev_value = (*inner).strong.get(); debug_assert_eq!(prev_value, 0, "No prior strong references should exist"); (*inner).strong.set(1); - } - let strong = Rc::from_inner(init_ptr); + Rc::from_inner(init_ptr) + }; // Strong references should collectively own a shared weak reference, // so don't run the destructor for our old weak reference. @@ -511,10 +513,12 @@ impl Rc { // pointers, which ensures that the weak destructor never frees // the allocation while the strong destructor is running, even // if the weak pointer is stored inside the strong one. - Ok(Self::from_inner( - Box::leak(Box::try_new(RcBox { strong: Cell::new(1), weak: Cell::new(1), value })?) - .into(), - )) + unsafe { + Ok(Self::from_inner( + Box::leak(Box::try_new(RcBox { strong: Cell::new(1), weak: Cell::new(1), value })?) + .into(), + )) + } } /// Constructs a new `Rc` with uninitialized contents, returning an error if the allocation fails @@ -733,7 +737,7 @@ impl Rc> { #[unstable(feature = "new_uninit", issue = "63291")] #[inline] pub unsafe fn assume_init(self) -> Rc { - Rc::from_inner(mem::ManuallyDrop::new(self).ptr.cast()) + unsafe { Rc::from_inner(mem::ManuallyDrop::new(self).ptr.cast()) } } } @@ -1199,9 +1203,11 @@ impl Rc { /// ``` pub fn downcast(self) -> Result, Rc> { if (*self).is::() { - let ptr = self.ptr.cast::>(); - forget(self); - Ok(Rc::from_inner(ptr)) + unsafe { + let ptr = self.ptr.cast::>(); + forget(self); + Ok(Rc::from_inner(ptr)) + } } else { Err(self) } @@ -1474,8 +1480,10 @@ impl Clone for Rc { /// ``` #[inline] fn clone(&self) -> Rc { - self.inner().inc_strong(); - Self::from_inner(self.ptr) + unsafe { + self.inner().inc_strong(); + Self::from_inner(self.ptr) + } } } @@ -2225,11 +2233,14 @@ impl Weak { #[stable(feature = "rc_weak", since = "1.4.0")] pub fn upgrade(&self) -> Option> { let inner = self.inner()?; + if inner.strong() == 0 { None } else { - inner.inc_strong(); - Some(Rc::from_inner(self.ptr)) + unsafe { + inner.inc_strong(); + Some(Rc::from_inner(self.ptr)) + } } } diff --git a/library/alloc/src/sync.rs b/library/alloc/src/sync.rs index 6e8da849e64cd..258557acdaa99 100644 --- a/library/alloc/src/sync.rs +++ b/library/alloc/src/sync.rs @@ -252,7 +252,7 @@ impl, U: ?Sized> CoerceUnsized> for Arc {} impl, U: ?Sized> DispatchFromDyn> for Arc {} impl Arc { - fn from_inner(ptr: NonNull>) -> Self { + unsafe fn from_inner(ptr: NonNull>) -> Self { Self { ptr, phantom: PhantomData } } @@ -348,7 +348,7 @@ impl Arc { weak: atomic::AtomicUsize::new(1), data, }; - Self::from_inner(Box::leak(x).into()) + unsafe { Self::from_inner(Box::leak(x).into()) } } /// Constructs a new `Arc` using a weak reference to itself. Attempting @@ -397,7 +397,7 @@ impl Arc { // Now we can properly initialize the inner value and turn our weak // reference into a strong reference. - unsafe { + let strong = unsafe { let inner = init_ptr.as_ptr(); ptr::write(ptr::addr_of_mut!((*inner).data), data); @@ -415,9 +415,9 @@ impl Arc { // possible with safe code alone. let prev_value = (*inner).strong.fetch_add(1, Release); debug_assert_eq!(prev_value, 0, "No prior strong references should exist"); - } - let strong = Arc::from_inner(init_ptr); + Arc::from_inner(init_ptr) + }; // Strong references should collectively own a shared weak reference, // so don't run the destructor for our old weak reference. @@ -526,7 +526,7 @@ impl Arc { weak: atomic::AtomicUsize::new(1), data, })?; - Ok(Self::from_inner(Box::leak(x).into())) + unsafe { Ok(Self::from_inner(Box::leak(x).into())) } } /// Constructs a new `Arc` with uninitialized contents, returning an error @@ -737,7 +737,7 @@ impl Arc> { #[unstable(feature = "new_uninit", issue = "63291")] #[inline] pub unsafe fn assume_init(self) -> Arc { - Arc::from_inner(mem::ManuallyDrop::new(self).ptr.cast()) + unsafe { Arc::from_inner(mem::ManuallyDrop::new(self).ptr.cast()) } } } @@ -1327,7 +1327,7 @@ impl Clone for Arc { abort(); } - Self::from_inner(self.ptr) + unsafe { Self::from_inner(self.ptr) } } } @@ -1654,9 +1654,11 @@ impl Arc { T: Any + Send + Sync + 'static, { if (*self).is::() { - let ptr = self.ptr.cast::>(); - mem::forget(self); - Ok(Arc::from_inner(ptr)) + unsafe { + let ptr = self.ptr.cast::>(); + mem::forget(self); + Ok(Arc::from_inner(ptr)) + } } else { Err(self) } @@ -1880,7 +1882,7 @@ impl Weak { // value can be initialized after `Weak` references have already been created. In that case, we // expect to observe the fully initialized value. match inner.strong.compare_exchange_weak(n, n + 1, Acquire, Relaxed) { - Ok(_) => return Some(Arc::from_inner(self.ptr)), // null checked above + Ok(_) => return Some(unsafe { Arc::from_inner(self.ptr) }), // null checked above Err(old) => n = old, } } From 8dc8e72c4d68c95ef67e49370129f4b66c493add Mon Sep 17 00:00:00 2001 From: est31 Date: Thu, 18 Nov 2021 17:21:21 +0100 Subject: [PATCH 2/8] Use more let_else in rustc_mir_build Helps avoid rightward drift. --- .../rustc_mir_build/src/build/matches/mod.rs | 11 +- compiler/rustc_mir_build/src/build/mod.rs | 101 +++++++++--------- .../rustc_mir_build/src/check_unsafety.rs | 23 ++-- 3 files changed, 66 insertions(+), 69 deletions(-) diff --git a/compiler/rustc_mir_build/src/build/matches/mod.rs b/compiler/rustc_mir_build/src/build/matches/mod.rs index 6320d5d47497f..e3a05e01ea8f0 100644 --- a/compiler/rustc_mir_build/src/build/matches/mod.rs +++ b/compiler/rustc_mir_build/src/build/matches/mod.rs @@ -1606,13 +1606,12 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // encounter a candidate where the test is not relevant; at // that point, we stop sorting. while let Some(candidate) = candidates.first_mut() { - if let Some(idx) = self.sort_candidate(&match_place.clone(), &test, candidate) { - let (candidate, rest) = candidates.split_first_mut().unwrap(); - target_candidates[idx].push(candidate); - candidates = rest; - } else { + let Some(idx) = self.sort_candidate(&match_place.clone(), &test, candidate) else { break; - } + }; + let (candidate, rest) = candidates.split_first_mut().unwrap(); + target_candidates[idx].push(candidate); + candidates = rest; } // at least the first candidate ought to be tested assert!(total_candidate_count > candidates.len()); diff --git a/compiler/rustc_mir_build/src/build/mod.rs b/compiler/rustc_mir_build/src/build/mod.rs index 4108ad50470b7..cb94e75997237 100644 --- a/compiler/rustc_mir_build/src/build/mod.rs +++ b/compiler/rustc_mir_build/src/build/mod.rs @@ -966,59 +966,58 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { DropKind::Value, ); - if let Some(arg) = arg_opt { - let pat = match tcx.hir().get(arg.pat.hir_id) { - Node::Pat(pat) | Node::Binding(pat) => pat, - node => bug!("pattern became {:?}", node), - }; - let pattern = pat_from_hir(tcx, self.param_env, self.typeck_results, pat); - let original_source_scope = self.source_scope; - let span = pattern.span; - self.set_correct_source_scope_for_arg(arg.hir_id, original_source_scope, span); - match *pattern.kind { - // Don't introduce extra copies for simple bindings - PatKind::Binding { - mutability, - var, - mode: BindingMode::ByValue, - subpattern: None, - .. - } => { - self.local_decls[local].mutability = mutability; - self.local_decls[local].source_info.scope = self.source_scope; - self.local_decls[local].local_info = if let Some(kind) = self_binding { - Some(Box::new(LocalInfo::User(ClearCrossCrate::Set( - BindingForm::ImplicitSelf(*kind), - )))) - } else { - let binding_mode = ty::BindingMode::BindByValue(mutability); - Some(Box::new(LocalInfo::User(ClearCrossCrate::Set(BindingForm::Var( - VarBindingForm { - binding_mode, - opt_ty_info, - opt_match_place: Some((Some(place), span)), - pat_span: span, - }, - ))))) - }; - self.var_indices.insert(var, LocalsForNode::One(local)); - } - _ => { - scope = self.declare_bindings( - scope, - expr.span, - &pattern, - matches::ArmHasGuard(false), - Some((Some(&place), span)), - ); - let place_builder = PlaceBuilder::from(local); - unpack!( - block = self.place_into_pattern(block, pattern, place_builder, false) - ); - } + let Some(arg) = arg_opt else { + continue; + }; + let pat = match tcx.hir().get(arg.pat.hir_id) { + Node::Pat(pat) | Node::Binding(pat) => pat, + node => bug!("pattern became {:?}", node), + }; + let pattern = pat_from_hir(tcx, self.param_env, self.typeck_results, pat); + let original_source_scope = self.source_scope; + let span = pattern.span; + self.set_correct_source_scope_for_arg(arg.hir_id, original_source_scope, span); + match *pattern.kind { + // Don't introduce extra copies for simple bindings + PatKind::Binding { + mutability, + var, + mode: BindingMode::ByValue, + subpattern: None, + .. + } => { + self.local_decls[local].mutability = mutability; + self.local_decls[local].source_info.scope = self.source_scope; + self.local_decls[local].local_info = if let Some(kind) = self_binding { + Some(Box::new(LocalInfo::User(ClearCrossCrate::Set( + BindingForm::ImplicitSelf(*kind), + )))) + } else { + let binding_mode = ty::BindingMode::BindByValue(mutability); + Some(Box::new(LocalInfo::User(ClearCrossCrate::Set(BindingForm::Var( + VarBindingForm { + binding_mode, + opt_ty_info, + opt_match_place: Some((Some(place), span)), + pat_span: span, + }, + ))))) + }; + self.var_indices.insert(var, LocalsForNode::One(local)); + } + _ => { + scope = self.declare_bindings( + scope, + expr.span, + &pattern, + matches::ArmHasGuard(false), + Some((Some(&place), span)), + ); + let place_builder = PlaceBuilder::from(local); + unpack!(block = self.place_into_pattern(block, pattern, place_builder, false)); } - self.source_scope = original_source_scope; } + self.source_scope = original_source_scope; } // Enter the argument pattern bindings source scope, if it exists. diff --git a/compiler/rustc_mir_build/src/check_unsafety.rs b/compiler/rustc_mir_build/src/check_unsafety.rs index 0e82b18720142..7940bd1f33dc1 100644 --- a/compiler/rustc_mir_build/src/check_unsafety.rs +++ b/compiler/rustc_mir_build/src/check_unsafety.rs @@ -256,23 +256,22 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for UnsafetyVisitor<'a, 'tcx> { } PatKind::Binding { mode: BindingMode::ByRef(borrow_kind), ty, .. } => { if self.inside_adt { - if let ty::Ref(_, ty, _) = ty.kind() { - match borrow_kind { - BorrowKind::Shallow | BorrowKind::Shared | BorrowKind::Unique => { - if !ty.is_freeze(self.tcx.at(pat.span), self.param_env) { - self.requires_unsafe(pat.span, BorrowOfLayoutConstrainedField); - } - } - BorrowKind::Mut { .. } => { - self.requires_unsafe(pat.span, MutationOfLayoutConstrainedField); - } - } - } else { + let ty::Ref(_, ty, _) = ty.kind() else { span_bug!( pat.span, "BindingMode::ByRef in pattern, but found non-reference type {}", ty ); + }; + match borrow_kind { + BorrowKind::Shallow | BorrowKind::Shared | BorrowKind::Unique => { + if !ty.is_freeze(self.tcx.at(pat.span), self.param_env) { + self.requires_unsafe(pat.span, BorrowOfLayoutConstrainedField); + } + } + BorrowKind::Mut { .. } => { + self.requires_unsafe(pat.span, MutationOfLayoutConstrainedField); + } } } visit::walk_pat(self, pat); From 77a105c91f5aff0d6749210cc18bc8970881c3c4 Mon Sep 17 00:00:00 2001 From: Badel2 <2badel2@gmail.com> Date: Thu, 18 Nov 2021 00:01:49 +0100 Subject: [PATCH 3/8] Fix ICE `#90993`: add missing call to cancel --- compiler/rustc_parse/src/parser/pat.rs | 2 +- src/test/ui/parser/issue-90993.rs | 6 +++++ src/test/ui/parser/issue-90993.stderr | 31 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/test/ui/parser/issue-90993.rs create mode 100644 src/test/ui/parser/issue-90993.stderr diff --git a/compiler/rustc_parse/src/parser/pat.rs b/compiler/rustc_parse/src/parser/pat.rs index b03b545998152..3b5a297103c0a 100644 --- a/compiler/rustc_parse/src/parser/pat.rs +++ b/compiler/rustc_parse/src/parser/pat.rs @@ -817,7 +817,7 @@ impl<'a> Parser<'a> { // Ensure the user doesn't receive unhelpful unexpected token errors self.bump(); if self.is_pat_range_end_start(0) { - let _ = self.parse_pat_range_end(); + let _ = self.parse_pat_range_end().map_err(|mut e| e.cancel()); } self.error_inclusive_range_with_extra_equals(span_with_eq); diff --git a/src/test/ui/parser/issue-90993.rs b/src/test/ui/parser/issue-90993.rs new file mode 100644 index 0000000000000..40e6fc748760a --- /dev/null +++ b/src/test/ui/parser/issue-90993.rs @@ -0,0 +1,6 @@ +fn main() { + ...=. + //~^ ERROR: unexpected token: `...` + //~| ERROR: unexpected `=` after inclusive range + //~| ERROR: expected one of `-`, `;`, `}`, or path, found `.` +} diff --git a/src/test/ui/parser/issue-90993.stderr b/src/test/ui/parser/issue-90993.stderr new file mode 100644 index 0000000000000..ab6bce410e6cc --- /dev/null +++ b/src/test/ui/parser/issue-90993.stderr @@ -0,0 +1,31 @@ +error: unexpected token: `...` + --> $DIR/issue-90993.rs:2:5 + | +LL | ...=. + | ^^^ + | +help: use `..` for an exclusive range + | +LL | ..=. + | ~~ +help: or `..=` for an inclusive range + | +LL | ..==. + | ~~~ + +error: unexpected `=` after inclusive range + --> $DIR/issue-90993.rs:2:5 + | +LL | ...=. + | ^^^^ help: use `..=` instead + | + = note: inclusive ranges end with a single equals sign (`..=`) + +error: expected one of `-`, `;`, `}`, or path, found `.` + --> $DIR/issue-90993.rs:2:9 + | +LL | ...=. + | ^ expected one of `-`, `;`, `}`, or path + +error: aborting due to 3 previous errors + From 8c8914ecaba0ae97970d129cf9f2301944c26dff Mon Sep 17 00:00:00 2001 From: Badel2 <2badel2@gmail.com> Date: Sat, 20 Nov 2021 14:28:33 +0100 Subject: [PATCH 4/8] Move parser tests to parser/issues subdirectory Because the parser directory has already reached the 1000 file limit. --- .../{ => issues}/auxiliary/issue-21146-inc.rs | 0 ...sue-89971-outer-attr-following-inner-attr-ice.rs | 0 src/test/ui/parser/{ => issues}/issue-10392-2.fixed | 0 src/test/ui/parser/{ => issues}/issue-10392-2.rs | 0 .../ui/parser/{ => issues}/issue-10392-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-10392.rs | 0 src/test/ui/parser/{ => issues}/issue-10392.stderr | 0 src/test/ui/parser/{ => issues}/issue-10636-1.rs | 0 .../ui/parser/{ => issues}/issue-10636-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-10636-2.rs | 0 .../ui/parser/{ => issues}/issue-10636-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-13483.rs | 0 src/test/ui/parser/{ => issues}/issue-13483.stderr | 0 src/test/ui/parser/{ => issues}/issue-14303-enum.rs | 0 .../ui/parser/{ => issues}/issue-14303-enum.stderr | 0 .../ui/parser/{ => issues}/issue-14303-fn-def.rs | 0 .../parser/{ => issues}/issue-14303-fn-def.stderr | 0 .../{ => issues}/issue-14303-fncall.full.stderr | 0 .../issue-14303-fncall.generic_arg.stderr | 0 .../ui/parser/{ => issues}/issue-14303-fncall.rs | 0 src/test/ui/parser/{ => issues}/issue-14303-impl.rs | 0 .../ui/parser/{ => issues}/issue-14303-impl.stderr | 0 src/test/ui/parser/{ => issues}/issue-14303-path.rs | 0 .../ui/parser/{ => issues}/issue-14303-path.stderr | 0 .../ui/parser/{ => issues}/issue-14303-struct.rs | 0 .../parser/{ => issues}/issue-14303-struct.stderr | 0 .../ui/parser/{ => issues}/issue-14303-trait.rs | 0 .../ui/parser/{ => issues}/issue-14303-trait.stderr | 0 src/test/ui/parser/{ => issues}/issue-15914.rs | 0 src/test/ui/parser/{ => issues}/issue-15914.stderr | 0 src/test/ui/parser/{ => issues}/issue-15980.rs | 0 src/test/ui/parser/{ => issues}/issue-15980.stderr | 0 src/test/ui/parser/{ => issues}/issue-1655.rs | 0 src/test/ui/parser/{ => issues}/issue-1655.stderr | 0 src/test/ui/parser/{ => issues}/issue-17383.rs | 0 src/test/ui/parser/{ => issues}/issue-17383.stderr | 0 .../ui/parser/{ => issues}/issue-17718-const-mut.rs | 0 .../{ => issues}/issue-17718-const-mut.stderr | 0 src/test/ui/parser/{ => issues}/issue-17904-2.rs | 0 .../ui/parser/{ => issues}/issue-17904-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-17904.rs | 0 src/test/ui/parser/{ => issues}/issue-17904.stderr | 0 src/test/ui/parser/{ => issues}/issue-1802-1.rs | 0 src/test/ui/parser/{ => issues}/issue-1802-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-1802-2.rs | 0 src/test/ui/parser/{ => issues}/issue-1802-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-19096.rs | 0 src/test/ui/parser/{ => issues}/issue-19096.stderr | 0 src/test/ui/parser/{ => issues}/issue-19398.rs | 0 src/test/ui/parser/{ => issues}/issue-19398.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-1.rs | 0 .../ui/parser/{ => issues}/issue-20616-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-2.rs | 0 .../ui/parser/{ => issues}/issue-20616-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-3.rs | 0 .../ui/parser/{ => issues}/issue-20616-3.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-4.rs | 0 .../ui/parser/{ => issues}/issue-20616-4.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-5.rs | 0 .../ui/parser/{ => issues}/issue-20616-5.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-6.rs | 0 .../ui/parser/{ => issues}/issue-20616-6.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-7.rs | 0 .../ui/parser/{ => issues}/issue-20616-7.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-8.rs | 0 .../ui/parser/{ => issues}/issue-20616-8.stderr | 0 src/test/ui/parser/{ => issues}/issue-20616-9.rs | 0 .../ui/parser/{ => issues}/issue-20616-9.stderr | 0 src/test/ui/parser/{ => issues}/issue-20711-2.rs | 0 .../ui/parser/{ => issues}/issue-20711-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-20711.rs | 0 src/test/ui/parser/{ => issues}/issue-20711.stderr | 0 src/test/ui/parser/{ => issues}/issue-21146.rs | 0 src/test/ui/parser/{ => issues}/issue-21146.stderr | 0 src/test/ui/parser/{ => issues}/issue-21153.rs | 0 src/test/ui/parser/{ => issues}/issue-21153.stderr | 0 src/test/ui/parser/{ => issues}/issue-21475.rs | 0 src/test/ui/parser/{ => issues}/issue-22647.rs | 0 src/test/ui/parser/{ => issues}/issue-22647.stderr | 0 src/test/ui/parser/{ => issues}/issue-22712.rs | 0 src/test/ui/parser/{ => issues}/issue-22712.stderr | 0 src/test/ui/parser/{ => issues}/issue-2354-1.rs | 0 src/test/ui/parser/{ => issues}/issue-2354-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-2354.rs | 0 src/test/ui/parser/{ => issues}/issue-2354.stderr | 0 .../{ => issues}/issue-23620-invalid-escapes.rs | 0 .../{ => issues}/issue-23620-invalid-escapes.stderr | 0 src/test/ui/parser/{ => issues}/issue-24197.rs | 0 src/test/ui/parser/{ => issues}/issue-24197.stderr | 0 src/test/ui/parser/{ => issues}/issue-24375.rs | 0 src/test/ui/parser/{ => issues}/issue-24375.stderr | 0 src/test/ui/parser/{ => issues}/issue-24780.rs | 0 src/test/ui/parser/{ => issues}/issue-24780.stderr | 0 src/test/ui/parser/{ => issues}/issue-27255.rs | 0 src/test/ui/parser/{ => issues}/issue-27255.stderr | 0 src/test/ui/parser/{ => issues}/issue-30318.fixed | 0 src/test/ui/parser/{ => issues}/issue-30318.rs | 0 src/test/ui/parser/{ => issues}/issue-30318.stderr | 0 src/test/ui/parser/{ => issues}/issue-3036.fixed | 0 src/test/ui/parser/{ => issues}/issue-3036.rs | 0 src/test/ui/parser/{ => issues}/issue-3036.stderr | 0 src/test/ui/parser/{ => issues}/issue-31804.rs | 0 src/test/ui/parser/{ => issues}/issue-31804.stderr | 0 src/test/ui/parser/{ => issues}/issue-32214.rs | 0 src/test/ui/parser/{ => issues}/issue-32214.stderr | 0 src/test/ui/parser/{ => issues}/issue-32446.rs | 0 src/test/ui/parser/{ => issues}/issue-32446.stderr | 0 src/test/ui/parser/{ => issues}/issue-32501.rs | 0 src/test/ui/parser/{ => issues}/issue-32501.stderr | 0 src/test/ui/parser/{ => issues}/issue-32505.rs | 0 src/test/ui/parser/{ => issues}/issue-32505.stderr | 0 src/test/ui/parser/{ => issues}/issue-33262.rs | 0 src/test/ui/parser/{ => issues}/issue-33262.stderr | 0 src/test/ui/parser/{ => issues}/issue-33413.rs | 0 src/test/ui/parser/{ => issues}/issue-33413.stderr | 0 src/test/ui/parser/{ => issues}/issue-33418.fixed | 0 src/test/ui/parser/{ => issues}/issue-33418.rs | 0 src/test/ui/parser/{ => issues}/issue-33418.stderr | 0 src/test/ui/parser/{ => issues}/issue-33455.rs | 0 src/test/ui/parser/{ => issues}/issue-33455.stderr | 0 src/test/ui/parser/{ => issues}/issue-34222-1.rs | 0 .../ui/parser/{ => issues}/issue-34222-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-34255-1.rs | 0 .../ui/parser/{ => issues}/issue-34255-1.stderr | 0 .../{ => issues}/issue-35813-postfix-after-cast.rs | 0 .../issue-35813-postfix-after-cast.stderr | 0 src/test/ui/parser/{ => issues}/issue-41155.rs | 0 src/test/ui/parser/{ => issues}/issue-41155.stderr | 0 src/test/ui/parser/{ => issues}/issue-43196.rs | 0 src/test/ui/parser/{ => issues}/issue-43196.stderr | 0 src/test/ui/parser/{ => issues}/issue-43692.rs | 0 src/test/ui/parser/{ => issues}/issue-43692.stderr | 0 src/test/ui/parser/{ => issues}/issue-44021.rs | 0 src/test/ui/parser/{ => issues}/issue-44021.stderr | 0 src/test/ui/parser/{ => issues}/issue-44406.rs | 0 src/test/ui/parser/{ => issues}/issue-44406.stderr | 0 src/test/ui/parser/{ => issues}/issue-45296.rs | 0 src/test/ui/parser/{ => issues}/issue-45296.stderr | 0 src/test/ui/parser/{ => issues}/issue-46186.fixed | 0 src/test/ui/parser/{ => issues}/issue-46186.rs | 0 src/test/ui/parser/{ => issues}/issue-46186.stderr | 0 ...os-cannot-interpolate-impl-items-bad-variants.rs | 0 ...annot-interpolate-impl-items-bad-variants.stderr | 0 ...ue-48137-macros-cannot-interpolate-impl-items.rs | 0 src/test/ui/parser/{ => issues}/issue-48508-aux.rs | 0 src/test/ui/parser/{ => issues}/issue-48508.rs | 0 src/test/ui/parser/{ => issues}/issue-48636.fixed | 0 src/test/ui/parser/{ => issues}/issue-48636.rs | 0 src/test/ui/parser/{ => issues}/issue-48636.stderr | 0 src/test/ui/parser/{ => issues}/issue-49040.rs | 0 src/test/ui/parser/{ => issues}/issue-49040.stderr | 0 src/test/ui/parser/{ => issues}/issue-51602.rs | 0 src/test/ui/parser/{ => issues}/issue-51602.stderr | 0 src/test/ui/parser/{ => issues}/issue-52496.rs | 0 src/test/ui/parser/{ => issues}/issue-52496.stderr | 0 src/test/ui/parser/{ => issues}/issue-54521-1.rs | 0 src/test/ui/parser/{ => issues}/issue-54521-2.fixed | 0 src/test/ui/parser/{ => issues}/issue-54521-2.rs | 0 .../ui/parser/{ => issues}/issue-54521-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-54521-3.fixed | 0 src/test/ui/parser/{ => issues}/issue-54521-3.rs | 0 .../ui/parser/{ => issues}/issue-54521-3.stderr | 0 src/test/ui/parser/{ => issues}/issue-5544-a.rs | 0 src/test/ui/parser/{ => issues}/issue-5544-a.stderr | 0 src/test/ui/parser/{ => issues}/issue-5544-b.rs | 0 src/test/ui/parser/{ => issues}/issue-5544-b.stderr | 0 src/test/ui/parser/{ => issues}/issue-56031.rs | 0 src/test/ui/parser/{ => issues}/issue-56031.stderr | 0 src/test/ui/parser/{ => issues}/issue-57198.rs | 0 src/test/ui/parser/{ => issues}/issue-57198.stderr | 0 src/test/ui/parser/{ => issues}/issue-57684.fixed | 0 src/test/ui/parser/{ => issues}/issue-57684.rs | 0 src/test/ui/parser/{ => issues}/issue-57684.stderr | 0 src/test/ui/parser/{ => issues}/issue-57819.fixed | 0 src/test/ui/parser/{ => issues}/issue-57819.rs | 0 src/test/ui/parser/{ => issues}/issue-57819.stderr | 0 src/test/ui/parser/{ => issues}/issue-5806.rs | 0 src/test/ui/parser/{ => issues}/issue-5806.stderr | 0 .../issue-58094-missing-right-square-bracket.rs | 0 .../issue-58094-missing-right-square-bracket.stderr | 0 src/test/ui/parser/{ => issues}/issue-58856-1.rs | 0 .../ui/parser/{ => issues}/issue-58856-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-58856-2.rs | 0 .../ui/parser/{ => issues}/issue-58856-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-59418.rs | 0 src/test/ui/parser/{ => issues}/issue-59418.stderr | 0 src/test/ui/parser/{ => issues}/issue-60075.rs | 0 src/test/ui/parser/{ => issues}/issue-60075.stderr | 0 src/test/ui/parser/{ => issues}/issue-62524.rs | 0 src/test/ui/parser/{ => issues}/issue-62524.stderr | 0 src/test/ui/parser/{ => issues}/issue-62546.rs | 0 src/test/ui/parser/{ => issues}/issue-62546.stderr | 0 src/test/ui/parser/{ => issues}/issue-62554.rs | 0 src/test/ui/parser/{ => issues}/issue-62554.stderr | 0 src/test/ui/parser/{ => issues}/issue-62660.rs | 0 src/test/ui/parser/{ => issues}/issue-62660.stderr | 0 src/test/ui/parser/{ => issues}/issue-62881.rs | 0 src/test/ui/parser/{ => issues}/issue-62881.stderr | 0 src/test/ui/parser/{ => issues}/issue-62894.rs | 0 src/test/ui/parser/{ => issues}/issue-62894.stderr | 0 src/test/ui/parser/{ => issues}/issue-62895.rs | 0 src/test/ui/parser/{ => issues}/issue-62895.stderr | 0 src/test/ui/parser/{ => issues}/issue-62913.rs | 0 src/test/ui/parser/{ => issues}/issue-62913.stderr | 0 src/test/ui/parser/{ => issues}/issue-62973.rs | 0 src/test/ui/parser/{ => issues}/issue-62973.stderr | 0 .../issue-63115-range-pat-interpolated.rs | 0 src/test/ui/parser/{ => issues}/issue-63116.rs | 0 src/test/ui/parser/{ => issues}/issue-63116.stderr | 0 src/test/ui/parser/{ => issues}/issue-63135.rs | 0 src/test/ui/parser/{ => issues}/issue-63135.stderr | 0 src/test/ui/parser/{ => issues}/issue-64732.rs | 0 src/test/ui/parser/{ => issues}/issue-64732.stderr | 0 .../issue-65041-empty-vis-matcher-in-enum.rs | 0 .../issue-65041-empty-vis-matcher-in-trait.rs | 0 .../issue-65122-mac-invoc-in-mut-patterns.rs | 0 .../issue-65122-mac-invoc-in-mut-patterns.stderr | 0 .../issue-65257-invalid-var-decl-recovery.rs | 0 .../issue-65257-invalid-var-decl-recovery.stderr | 0 .../issue-65846-rollback-gating-failing-matcher.rs | 0 src/test/ui/parser/{ => issues}/issue-6610.rs | 0 src/test/ui/parser/{ => issues}/issue-6610.stderr | 0 .../issue-66357-unexpected-unreachable.rs | 0 .../issue-66357-unexpected-unreachable.stderr | 0 src/test/ui/parser/{ => issues}/issue-66473.rs | Bin src/test/ui/parser/{ => issues}/issue-66473.stderr | Bin ...146-negative-outlives-bound-syntactic-fail.fixed | 0 ...-67146-negative-outlives-bound-syntactic-fail.rs | 0 ...46-negative-outlives-bound-syntactic-fail.stderr | 0 ...sue-67377-invalid-syntax-in-enum-discriminant.rs | 0 ...67377-invalid-syntax-in-enum-discriminant.stderr | 0 ...issue-68000-unicode-ident-after-missing-comma.rs | 0 ...e-68000-unicode-ident-after-missing-comma.stderr | 0 src/test/ui/parser/{ => issues}/issue-68629.rs | Bin src/test/ui/parser/{ => issues}/issue-68629.stderr | Bin src/test/ui/parser/{ => issues}/issue-68730.rs | Bin src/test/ui/parser/{ => issues}/issue-68730.stderr | Bin .../issue-68788-in-trait-item-propagation.rs | 0 src/test/ui/parser/{ => issues}/issue-68890-2.rs | 0 .../ui/parser/{ => issues}/issue-68890-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-68890.rs | 0 src/test/ui/parser/{ => issues}/issue-68890.stderr | 0 .../issue-70050-ntliteral-accepts-negated-lit.rs | 0 .../issue-70388-recover-dotdotdot-rest-pat.rs | 0 .../issue-70388-recover-dotdotdot-rest-pat.stderr | 0 .../{ => issues}/issue-70388-without-witness.fixed | 0 .../{ => issues}/issue-70388-without-witness.rs | 0 .../{ => issues}/issue-70388-without-witness.stderr | 0 ...issue-70549-resolve-after-recovered-self-ctor.rs | 0 ...e-70549-resolve-after-recovered-self-ctor.stderr | 0 .../issue-70552-ascription-in-parens-after-call.rs | 0 ...sue-70552-ascription-in-parens-after-call.stderr | 0 .../{ => issues}/issue-70583-block-is-empty-1.rs | 0 .../issue-70583-block-is-empty-1.stderr | 0 .../{ => issues}/issue-70583-block-is-empty-2.rs | 0 .../issue-70583-block-is-empty-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-7222.rs | 0 src/test/ui/parser/{ => issues}/issue-72253.rs | 0 src/test/ui/parser/{ => issues}/issue-72253.stderr | 0 src/test/ui/parser/{ => issues}/issue-72373.rs | 0 src/test/ui/parser/{ => issues}/issue-72373.stderr | 0 .../{ => issues}/issue-73568-lifetime-after-mut.rs | 0 .../issue-73568-lifetime-after-mut.stderr | 0 src/test/ui/parser/{ => issues}/issue-75599.rs | 0 .../ui/parser/{ => issues}/issue-76437-async.rs | 0 .../ui/parser/{ => issues}/issue-76437-async.stderr | 0 .../{ => issues}/issue-76437-const-async-unsafe.rs | 0 .../issue-76437-const-async-unsafe.stderr | 0 .../parser/{ => issues}/issue-76437-const-async.rs | 0 .../{ => issues}/issue-76437-const-async.stderr | 0 .../ui/parser/{ => issues}/issue-76437-const.rs | 0 .../ui/parser/{ => issues}/issue-76437-const.stderr | 0 .../{ => issues}/issue-76437-pub-crate-unsafe.rs | 0 .../issue-76437-pub-crate-unsafe.stderr | 0 .../ui/parser/{ => issues}/issue-76437-unsafe.rs | 0 .../parser/{ => issues}/issue-76437-unsafe.stderr | 0 src/test/ui/parser/{ => issues}/issue-76597.fixed | 0 src/test/ui/parser/{ => issues}/issue-76597.rs | 0 src/test/ui/parser/{ => issues}/issue-76597.stderr | 0 src/test/ui/parser/{ => issues}/issue-7970b.rs | 0 src/test/ui/parser/{ => issues}/issue-7970b.stderr | 0 src/test/ui/parser/{ => issues}/issue-81806.rs | 0 src/test/ui/parser/{ => issues}/issue-81806.stderr | 0 src/test/ui/parser/{ => issues}/issue-83639.rs | 0 src/test/ui/parser/{ => issues}/issue-83639.stderr | 0 src/test/ui/parser/{ => issues}/issue-84104.rs | 0 src/test/ui/parser/{ => issues}/issue-84104.stderr | 0 src/test/ui/parser/{ => issues}/issue-84117.rs | 0 src/test/ui/parser/{ => issues}/issue-84117.stderr | 0 src/test/ui/parser/{ => issues}/issue-84148-1.rs | 0 .../ui/parser/{ => issues}/issue-84148-1.stderr | 0 src/test/ui/parser/{ => issues}/issue-84148-2.rs | 0 .../ui/parser/{ => issues}/issue-84148-2.stderr | 0 src/test/ui/parser/{ => issues}/issue-8537.rs | 0 src/test/ui/parser/{ => issues}/issue-8537.stderr | 0 src/test/ui/parser/{ => issues}/issue-86895.rs | 0 src/test/ui/parser/{ => issues}/issue-86895.stderr | 0 .../{ => issues}/issue-87086-colon-path-sep.rs | 0 .../{ => issues}/issue-87086-colon-path-sep.stderr | 0 .../issue-87197-missing-semicolon.fixed | 0 .../{ => issues}/issue-87197-missing-semicolon.rs | 0 .../issue-87197-missing-semicolon.stderr | 0 .../issue-87217-keyword-order/const-async-const.rs | 0 .../const-async-const.stderr | 0 .../issue-87217-keyword-order/several-kw-jump.rs | 0 .../several-kw-jump.stderr | 0 .../issue-87217-keyword-order/wrong-async.rs | 0 .../issue-87217-keyword-order/wrong-async.stderr | 0 .../issue-87217-keyword-order/wrong-const.rs | 0 .../issue-87217-keyword-order/wrong-const.stderr | 0 .../issue-87217-keyword-order/wrong-unsafe.rs | 0 .../issue-87217-keyword-order/wrong-unsafe.stderr | 0 src/test/ui/parser/{ => issues}/issue-87635.rs | 0 src/test/ui/parser/{ => issues}/issue-87635.stderr | 0 src/test/ui/parser/{ => issues}/issue-87812-path.rs | 0 .../ui/parser/{ => issues}/issue-87812-path.stderr | 0 src/test/ui/parser/{ => issues}/issue-87812.rs | 0 src/test/ui/parser/{ => issues}/issue-87812.stderr | 0 .../{ => issues}/issue-88276-unary-plus.fixed | 0 .../parser/{ => issues}/issue-88276-unary-plus.rs | 0 .../{ => issues}/issue-88276-unary-plus.stderr | 0 .../{ => issues}/issue-88583-union-as-ident.rs | 0 src/test/ui/parser/{ => issues}/issue-88770.rs | 0 src/test/ui/parser/{ => issues}/issue-88770.stderr | 0 src/test/ui/parser/{ => issues}/issue-88818.rs | 0 src/test/ui/parser/{ => issues}/issue-88818.stderr | 0 src/test/ui/parser/{ => issues}/issue-89388.rs | 0 src/test/ui/parser/{ => issues}/issue-89388.stderr | 0 src/test/ui/parser/{ => issues}/issue-89396.fixed | 0 src/test/ui/parser/{ => issues}/issue-89396.rs | 0 src/test/ui/parser/{ => issues}/issue-89396.stderr | 0 src/test/ui/parser/{ => issues}/issue-89574.rs | 0 src/test/ui/parser/{ => issues}/issue-89574.stderr | 0 ...sue-89971-outer-attr-following-inner-attr-ice.rs | 0 ...89971-outer-attr-following-inner-attr-ice.stderr | 0 src/test/ui/parser/{ => issues}/issue-90993.rs | 0 src/test/ui/parser/{ => issues}/issue-90993.stderr | 0 337 files changed, 0 insertions(+), 0 deletions(-) rename src/test/ui/parser/{ => issues}/auxiliary/issue-21146-inc.rs (100%) rename src/test/ui/parser/{ => issues}/auxiliary/issue-89971-outer-attr-following-inner-attr-ice.rs (100%) rename src/test/ui/parser/{ => issues}/issue-10392-2.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-10392-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-10392-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-10392.rs (100%) rename src/test/ui/parser/{ => issues}/issue-10392.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-10636-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-10636-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-10636-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-10636-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-13483.rs (100%) rename src/test/ui/parser/{ => issues}/issue-13483.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-enum.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-enum.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-fn-def.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-fn-def.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-fncall.full.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-fncall.generic_arg.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-fncall.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-impl.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-impl.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-path.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-path.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-struct.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-struct.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-14303-trait.rs (100%) rename src/test/ui/parser/{ => issues}/issue-14303-trait.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-15914.rs (100%) rename src/test/ui/parser/{ => issues}/issue-15914.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-15980.rs (100%) rename src/test/ui/parser/{ => issues}/issue-15980.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-1655.rs (100%) rename src/test/ui/parser/{ => issues}/issue-1655.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-17383.rs (100%) rename src/test/ui/parser/{ => issues}/issue-17383.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-17718-const-mut.rs (100%) rename src/test/ui/parser/{ => issues}/issue-17718-const-mut.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-17904-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-17904-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-17904.rs (100%) rename src/test/ui/parser/{ => issues}/issue-17904.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-1802-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-1802-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-1802-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-1802-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-19096.rs (100%) rename src/test/ui/parser/{ => issues}/issue-19096.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-19398.rs (100%) rename src/test/ui/parser/{ => issues}/issue-19398.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-3.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-3.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-4.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-4.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-5.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-5.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-6.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-6.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-7.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-7.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-8.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-8.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20616-9.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20616-9.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20711-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20711-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-20711.rs (100%) rename src/test/ui/parser/{ => issues}/issue-20711.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-21146.rs (100%) rename src/test/ui/parser/{ => issues}/issue-21146.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-21153.rs (100%) rename src/test/ui/parser/{ => issues}/issue-21153.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-21475.rs (100%) rename src/test/ui/parser/{ => issues}/issue-22647.rs (100%) rename src/test/ui/parser/{ => issues}/issue-22647.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-22712.rs (100%) rename src/test/ui/parser/{ => issues}/issue-22712.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-2354-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-2354-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-2354.rs (100%) rename src/test/ui/parser/{ => issues}/issue-2354.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-23620-invalid-escapes.rs (100%) rename src/test/ui/parser/{ => issues}/issue-23620-invalid-escapes.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-24197.rs (100%) rename src/test/ui/parser/{ => issues}/issue-24197.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-24375.rs (100%) rename src/test/ui/parser/{ => issues}/issue-24375.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-24780.rs (100%) rename src/test/ui/parser/{ => issues}/issue-24780.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-27255.rs (100%) rename src/test/ui/parser/{ => issues}/issue-27255.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-30318.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-30318.rs (100%) rename src/test/ui/parser/{ => issues}/issue-30318.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-3036.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-3036.rs (100%) rename src/test/ui/parser/{ => issues}/issue-3036.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-31804.rs (100%) rename src/test/ui/parser/{ => issues}/issue-31804.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-32214.rs (100%) rename src/test/ui/parser/{ => issues}/issue-32214.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-32446.rs (100%) rename src/test/ui/parser/{ => issues}/issue-32446.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-32501.rs (100%) rename src/test/ui/parser/{ => issues}/issue-32501.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-32505.rs (100%) rename src/test/ui/parser/{ => issues}/issue-32505.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-33262.rs (100%) rename src/test/ui/parser/{ => issues}/issue-33262.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-33413.rs (100%) rename src/test/ui/parser/{ => issues}/issue-33413.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-33418.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-33418.rs (100%) rename src/test/ui/parser/{ => issues}/issue-33418.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-33455.rs (100%) rename src/test/ui/parser/{ => issues}/issue-33455.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-34222-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-34222-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-34255-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-34255-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-35813-postfix-after-cast.rs (100%) rename src/test/ui/parser/{ => issues}/issue-35813-postfix-after-cast.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-41155.rs (100%) rename src/test/ui/parser/{ => issues}/issue-41155.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-43196.rs (100%) rename src/test/ui/parser/{ => issues}/issue-43196.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-43692.rs (100%) rename src/test/ui/parser/{ => issues}/issue-43692.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-44021.rs (100%) rename src/test/ui/parser/{ => issues}/issue-44021.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-44406.rs (100%) rename src/test/ui/parser/{ => issues}/issue-44406.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-45296.rs (100%) rename src/test/ui/parser/{ => issues}/issue-45296.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-46186.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-46186.rs (100%) rename src/test/ui/parser/{ => issues}/issue-46186.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs (100%) rename src/test/ui/parser/{ => issues}/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-48137-macros-cannot-interpolate-impl-items.rs (100%) rename src/test/ui/parser/{ => issues}/issue-48508-aux.rs (100%) rename src/test/ui/parser/{ => issues}/issue-48508.rs (100%) rename src/test/ui/parser/{ => issues}/issue-48636.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-48636.rs (100%) rename src/test/ui/parser/{ => issues}/issue-48636.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-49040.rs (100%) rename src/test/ui/parser/{ => issues}/issue-49040.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-51602.rs (100%) rename src/test/ui/parser/{ => issues}/issue-51602.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-52496.rs (100%) rename src/test/ui/parser/{ => issues}/issue-52496.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-54521-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-54521-2.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-54521-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-54521-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-54521-3.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-54521-3.rs (100%) rename src/test/ui/parser/{ => issues}/issue-54521-3.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-5544-a.rs (100%) rename src/test/ui/parser/{ => issues}/issue-5544-a.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-5544-b.rs (100%) rename src/test/ui/parser/{ => issues}/issue-5544-b.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-56031.rs (100%) rename src/test/ui/parser/{ => issues}/issue-56031.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-57198.rs (100%) rename src/test/ui/parser/{ => issues}/issue-57198.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-57684.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-57684.rs (100%) rename src/test/ui/parser/{ => issues}/issue-57684.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-57819.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-57819.rs (100%) rename src/test/ui/parser/{ => issues}/issue-57819.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-5806.rs (100%) rename src/test/ui/parser/{ => issues}/issue-5806.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-58094-missing-right-square-bracket.rs (100%) rename src/test/ui/parser/{ => issues}/issue-58094-missing-right-square-bracket.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-58856-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-58856-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-58856-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-58856-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-59418.rs (100%) rename src/test/ui/parser/{ => issues}/issue-59418.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-60075.rs (100%) rename src/test/ui/parser/{ => issues}/issue-60075.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62524.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62524.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62546.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62546.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62554.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62554.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62660.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62660.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62881.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62881.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62894.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62894.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62895.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62895.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62913.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62913.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-62973.rs (100%) rename src/test/ui/parser/{ => issues}/issue-62973.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-63115-range-pat-interpolated.rs (100%) rename src/test/ui/parser/{ => issues}/issue-63116.rs (100%) rename src/test/ui/parser/{ => issues}/issue-63116.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-63135.rs (100%) rename src/test/ui/parser/{ => issues}/issue-63135.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-64732.rs (100%) rename src/test/ui/parser/{ => issues}/issue-64732.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-65041-empty-vis-matcher-in-enum.rs (100%) rename src/test/ui/parser/{ => issues}/issue-65041-empty-vis-matcher-in-trait.rs (100%) rename src/test/ui/parser/{ => issues}/issue-65122-mac-invoc-in-mut-patterns.rs (100%) rename src/test/ui/parser/{ => issues}/issue-65122-mac-invoc-in-mut-patterns.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-65257-invalid-var-decl-recovery.rs (100%) rename src/test/ui/parser/{ => issues}/issue-65257-invalid-var-decl-recovery.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-65846-rollback-gating-failing-matcher.rs (100%) rename src/test/ui/parser/{ => issues}/issue-6610.rs (100%) rename src/test/ui/parser/{ => issues}/issue-6610.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-66357-unexpected-unreachable.rs (100%) rename src/test/ui/parser/{ => issues}/issue-66357-unexpected-unreachable.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-66473.rs (100%) rename src/test/ui/parser/{ => issues}/issue-66473.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-67146-negative-outlives-bound-syntactic-fail.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-67146-negative-outlives-bound-syntactic-fail.rs (100%) rename src/test/ui/parser/{ => issues}/issue-67146-negative-outlives-bound-syntactic-fail.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-67377-invalid-syntax-in-enum-discriminant.rs (100%) rename src/test/ui/parser/{ => issues}/issue-67377-invalid-syntax-in-enum-discriminant.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-68000-unicode-ident-after-missing-comma.rs (100%) rename src/test/ui/parser/{ => issues}/issue-68000-unicode-ident-after-missing-comma.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-68629.rs (100%) rename src/test/ui/parser/{ => issues}/issue-68629.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-68730.rs (100%) rename src/test/ui/parser/{ => issues}/issue-68730.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-68788-in-trait-item-propagation.rs (100%) rename src/test/ui/parser/{ => issues}/issue-68890-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-68890-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-68890.rs (100%) rename src/test/ui/parser/{ => issues}/issue-68890.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-70050-ntliteral-accepts-negated-lit.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70388-recover-dotdotdot-rest-pat.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70388-recover-dotdotdot-rest-pat.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-70388-without-witness.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-70388-without-witness.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70388-without-witness.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-70549-resolve-after-recovered-self-ctor.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70549-resolve-after-recovered-self-ctor.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-70552-ascription-in-parens-after-call.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70552-ascription-in-parens-after-call.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-70583-block-is-empty-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70583-block-is-empty-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-70583-block-is-empty-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-70583-block-is-empty-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-7222.rs (100%) rename src/test/ui/parser/{ => issues}/issue-72253.rs (100%) rename src/test/ui/parser/{ => issues}/issue-72253.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-72373.rs (100%) rename src/test/ui/parser/{ => issues}/issue-72373.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-73568-lifetime-after-mut.rs (100%) rename src/test/ui/parser/{ => issues}/issue-73568-lifetime-after-mut.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-75599.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-async.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-async.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-76437-const-async-unsafe.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-const-async-unsafe.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-76437-const-async.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-const-async.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-76437-const.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-const.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-76437-pub-crate-unsafe.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-pub-crate-unsafe.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-76437-unsafe.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76437-unsafe.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-76597.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-76597.rs (100%) rename src/test/ui/parser/{ => issues}/issue-76597.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-7970b.rs (100%) rename src/test/ui/parser/{ => issues}/issue-7970b.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-81806.rs (100%) rename src/test/ui/parser/{ => issues}/issue-81806.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-83639.rs (100%) rename src/test/ui/parser/{ => issues}/issue-83639.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-84104.rs (100%) rename src/test/ui/parser/{ => issues}/issue-84104.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-84117.rs (100%) rename src/test/ui/parser/{ => issues}/issue-84117.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-84148-1.rs (100%) rename src/test/ui/parser/{ => issues}/issue-84148-1.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-84148-2.rs (100%) rename src/test/ui/parser/{ => issues}/issue-84148-2.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-8537.rs (100%) rename src/test/ui/parser/{ => issues}/issue-8537.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-86895.rs (100%) rename src/test/ui/parser/{ => issues}/issue-86895.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87086-colon-path-sep.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87086-colon-path-sep.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87197-missing-semicolon.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-87197-missing-semicolon.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87197-missing-semicolon.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/const-async-const.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/const-async-const.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/several-kw-jump.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/several-kw-jump.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/wrong-async.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/wrong-async.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/wrong-const.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/wrong-const.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/wrong-unsafe.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87217-keyword-order/wrong-unsafe.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87635.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87635.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87812-path.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87812-path.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-87812.rs (100%) rename src/test/ui/parser/{ => issues}/issue-87812.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-88276-unary-plus.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-88276-unary-plus.rs (100%) rename src/test/ui/parser/{ => issues}/issue-88276-unary-plus.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-88583-union-as-ident.rs (100%) rename src/test/ui/parser/{ => issues}/issue-88770.rs (100%) rename src/test/ui/parser/{ => issues}/issue-88770.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-88818.rs (100%) rename src/test/ui/parser/{ => issues}/issue-88818.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-89388.rs (100%) rename src/test/ui/parser/{ => issues}/issue-89388.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-89396.fixed (100%) rename src/test/ui/parser/{ => issues}/issue-89396.rs (100%) rename src/test/ui/parser/{ => issues}/issue-89396.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-89574.rs (100%) rename src/test/ui/parser/{ => issues}/issue-89574.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-89971-outer-attr-following-inner-attr-ice.rs (100%) rename src/test/ui/parser/{ => issues}/issue-89971-outer-attr-following-inner-attr-ice.stderr (100%) rename src/test/ui/parser/{ => issues}/issue-90993.rs (100%) rename src/test/ui/parser/{ => issues}/issue-90993.stderr (100%) diff --git a/src/test/ui/parser/auxiliary/issue-21146-inc.rs b/src/test/ui/parser/issues/auxiliary/issue-21146-inc.rs similarity index 100% rename from src/test/ui/parser/auxiliary/issue-21146-inc.rs rename to src/test/ui/parser/issues/auxiliary/issue-21146-inc.rs diff --git a/src/test/ui/parser/auxiliary/issue-89971-outer-attr-following-inner-attr-ice.rs b/src/test/ui/parser/issues/auxiliary/issue-89971-outer-attr-following-inner-attr-ice.rs similarity index 100% rename from src/test/ui/parser/auxiliary/issue-89971-outer-attr-following-inner-attr-ice.rs rename to src/test/ui/parser/issues/auxiliary/issue-89971-outer-attr-following-inner-attr-ice.rs diff --git a/src/test/ui/parser/issue-10392-2.fixed b/src/test/ui/parser/issues/issue-10392-2.fixed similarity index 100% rename from src/test/ui/parser/issue-10392-2.fixed rename to src/test/ui/parser/issues/issue-10392-2.fixed diff --git a/src/test/ui/parser/issue-10392-2.rs b/src/test/ui/parser/issues/issue-10392-2.rs similarity index 100% rename from src/test/ui/parser/issue-10392-2.rs rename to src/test/ui/parser/issues/issue-10392-2.rs diff --git a/src/test/ui/parser/issue-10392-2.stderr b/src/test/ui/parser/issues/issue-10392-2.stderr similarity index 100% rename from src/test/ui/parser/issue-10392-2.stderr rename to src/test/ui/parser/issues/issue-10392-2.stderr diff --git a/src/test/ui/parser/issue-10392.rs b/src/test/ui/parser/issues/issue-10392.rs similarity index 100% rename from src/test/ui/parser/issue-10392.rs rename to src/test/ui/parser/issues/issue-10392.rs diff --git a/src/test/ui/parser/issue-10392.stderr b/src/test/ui/parser/issues/issue-10392.stderr similarity index 100% rename from src/test/ui/parser/issue-10392.stderr rename to src/test/ui/parser/issues/issue-10392.stderr diff --git a/src/test/ui/parser/issue-10636-1.rs b/src/test/ui/parser/issues/issue-10636-1.rs similarity index 100% rename from src/test/ui/parser/issue-10636-1.rs rename to src/test/ui/parser/issues/issue-10636-1.rs diff --git a/src/test/ui/parser/issue-10636-1.stderr b/src/test/ui/parser/issues/issue-10636-1.stderr similarity index 100% rename from src/test/ui/parser/issue-10636-1.stderr rename to src/test/ui/parser/issues/issue-10636-1.stderr diff --git a/src/test/ui/parser/issue-10636-2.rs b/src/test/ui/parser/issues/issue-10636-2.rs similarity index 100% rename from src/test/ui/parser/issue-10636-2.rs rename to src/test/ui/parser/issues/issue-10636-2.rs diff --git a/src/test/ui/parser/issue-10636-2.stderr b/src/test/ui/parser/issues/issue-10636-2.stderr similarity index 100% rename from src/test/ui/parser/issue-10636-2.stderr rename to src/test/ui/parser/issues/issue-10636-2.stderr diff --git a/src/test/ui/parser/issue-13483.rs b/src/test/ui/parser/issues/issue-13483.rs similarity index 100% rename from src/test/ui/parser/issue-13483.rs rename to src/test/ui/parser/issues/issue-13483.rs diff --git a/src/test/ui/parser/issue-13483.stderr b/src/test/ui/parser/issues/issue-13483.stderr similarity index 100% rename from src/test/ui/parser/issue-13483.stderr rename to src/test/ui/parser/issues/issue-13483.stderr diff --git a/src/test/ui/parser/issue-14303-enum.rs b/src/test/ui/parser/issues/issue-14303-enum.rs similarity index 100% rename from src/test/ui/parser/issue-14303-enum.rs rename to src/test/ui/parser/issues/issue-14303-enum.rs diff --git a/src/test/ui/parser/issue-14303-enum.stderr b/src/test/ui/parser/issues/issue-14303-enum.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-enum.stderr rename to src/test/ui/parser/issues/issue-14303-enum.stderr diff --git a/src/test/ui/parser/issue-14303-fn-def.rs b/src/test/ui/parser/issues/issue-14303-fn-def.rs similarity index 100% rename from src/test/ui/parser/issue-14303-fn-def.rs rename to src/test/ui/parser/issues/issue-14303-fn-def.rs diff --git a/src/test/ui/parser/issue-14303-fn-def.stderr b/src/test/ui/parser/issues/issue-14303-fn-def.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-fn-def.stderr rename to src/test/ui/parser/issues/issue-14303-fn-def.stderr diff --git a/src/test/ui/parser/issue-14303-fncall.full.stderr b/src/test/ui/parser/issues/issue-14303-fncall.full.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-fncall.full.stderr rename to src/test/ui/parser/issues/issue-14303-fncall.full.stderr diff --git a/src/test/ui/parser/issue-14303-fncall.generic_arg.stderr b/src/test/ui/parser/issues/issue-14303-fncall.generic_arg.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-fncall.generic_arg.stderr rename to src/test/ui/parser/issues/issue-14303-fncall.generic_arg.stderr diff --git a/src/test/ui/parser/issue-14303-fncall.rs b/src/test/ui/parser/issues/issue-14303-fncall.rs similarity index 100% rename from src/test/ui/parser/issue-14303-fncall.rs rename to src/test/ui/parser/issues/issue-14303-fncall.rs diff --git a/src/test/ui/parser/issue-14303-impl.rs b/src/test/ui/parser/issues/issue-14303-impl.rs similarity index 100% rename from src/test/ui/parser/issue-14303-impl.rs rename to src/test/ui/parser/issues/issue-14303-impl.rs diff --git a/src/test/ui/parser/issue-14303-impl.stderr b/src/test/ui/parser/issues/issue-14303-impl.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-impl.stderr rename to src/test/ui/parser/issues/issue-14303-impl.stderr diff --git a/src/test/ui/parser/issue-14303-path.rs b/src/test/ui/parser/issues/issue-14303-path.rs similarity index 100% rename from src/test/ui/parser/issue-14303-path.rs rename to src/test/ui/parser/issues/issue-14303-path.rs diff --git a/src/test/ui/parser/issue-14303-path.stderr b/src/test/ui/parser/issues/issue-14303-path.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-path.stderr rename to src/test/ui/parser/issues/issue-14303-path.stderr diff --git a/src/test/ui/parser/issue-14303-struct.rs b/src/test/ui/parser/issues/issue-14303-struct.rs similarity index 100% rename from src/test/ui/parser/issue-14303-struct.rs rename to src/test/ui/parser/issues/issue-14303-struct.rs diff --git a/src/test/ui/parser/issue-14303-struct.stderr b/src/test/ui/parser/issues/issue-14303-struct.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-struct.stderr rename to src/test/ui/parser/issues/issue-14303-struct.stderr diff --git a/src/test/ui/parser/issue-14303-trait.rs b/src/test/ui/parser/issues/issue-14303-trait.rs similarity index 100% rename from src/test/ui/parser/issue-14303-trait.rs rename to src/test/ui/parser/issues/issue-14303-trait.rs diff --git a/src/test/ui/parser/issue-14303-trait.stderr b/src/test/ui/parser/issues/issue-14303-trait.stderr similarity index 100% rename from src/test/ui/parser/issue-14303-trait.stderr rename to src/test/ui/parser/issues/issue-14303-trait.stderr diff --git a/src/test/ui/parser/issue-15914.rs b/src/test/ui/parser/issues/issue-15914.rs similarity index 100% rename from src/test/ui/parser/issue-15914.rs rename to src/test/ui/parser/issues/issue-15914.rs diff --git a/src/test/ui/parser/issue-15914.stderr b/src/test/ui/parser/issues/issue-15914.stderr similarity index 100% rename from src/test/ui/parser/issue-15914.stderr rename to src/test/ui/parser/issues/issue-15914.stderr diff --git a/src/test/ui/parser/issue-15980.rs b/src/test/ui/parser/issues/issue-15980.rs similarity index 100% rename from src/test/ui/parser/issue-15980.rs rename to src/test/ui/parser/issues/issue-15980.rs diff --git a/src/test/ui/parser/issue-15980.stderr b/src/test/ui/parser/issues/issue-15980.stderr similarity index 100% rename from src/test/ui/parser/issue-15980.stderr rename to src/test/ui/parser/issues/issue-15980.stderr diff --git a/src/test/ui/parser/issue-1655.rs b/src/test/ui/parser/issues/issue-1655.rs similarity index 100% rename from src/test/ui/parser/issue-1655.rs rename to src/test/ui/parser/issues/issue-1655.rs diff --git a/src/test/ui/parser/issue-1655.stderr b/src/test/ui/parser/issues/issue-1655.stderr similarity index 100% rename from src/test/ui/parser/issue-1655.stderr rename to src/test/ui/parser/issues/issue-1655.stderr diff --git a/src/test/ui/parser/issue-17383.rs b/src/test/ui/parser/issues/issue-17383.rs similarity index 100% rename from src/test/ui/parser/issue-17383.rs rename to src/test/ui/parser/issues/issue-17383.rs diff --git a/src/test/ui/parser/issue-17383.stderr b/src/test/ui/parser/issues/issue-17383.stderr similarity index 100% rename from src/test/ui/parser/issue-17383.stderr rename to src/test/ui/parser/issues/issue-17383.stderr diff --git a/src/test/ui/parser/issue-17718-const-mut.rs b/src/test/ui/parser/issues/issue-17718-const-mut.rs similarity index 100% rename from src/test/ui/parser/issue-17718-const-mut.rs rename to src/test/ui/parser/issues/issue-17718-const-mut.rs diff --git a/src/test/ui/parser/issue-17718-const-mut.stderr b/src/test/ui/parser/issues/issue-17718-const-mut.stderr similarity index 100% rename from src/test/ui/parser/issue-17718-const-mut.stderr rename to src/test/ui/parser/issues/issue-17718-const-mut.stderr diff --git a/src/test/ui/parser/issue-17904-2.rs b/src/test/ui/parser/issues/issue-17904-2.rs similarity index 100% rename from src/test/ui/parser/issue-17904-2.rs rename to src/test/ui/parser/issues/issue-17904-2.rs diff --git a/src/test/ui/parser/issue-17904-2.stderr b/src/test/ui/parser/issues/issue-17904-2.stderr similarity index 100% rename from src/test/ui/parser/issue-17904-2.stderr rename to src/test/ui/parser/issues/issue-17904-2.stderr diff --git a/src/test/ui/parser/issue-17904.rs b/src/test/ui/parser/issues/issue-17904.rs similarity index 100% rename from src/test/ui/parser/issue-17904.rs rename to src/test/ui/parser/issues/issue-17904.rs diff --git a/src/test/ui/parser/issue-17904.stderr b/src/test/ui/parser/issues/issue-17904.stderr similarity index 100% rename from src/test/ui/parser/issue-17904.stderr rename to src/test/ui/parser/issues/issue-17904.stderr diff --git a/src/test/ui/parser/issue-1802-1.rs b/src/test/ui/parser/issues/issue-1802-1.rs similarity index 100% rename from src/test/ui/parser/issue-1802-1.rs rename to src/test/ui/parser/issues/issue-1802-1.rs diff --git a/src/test/ui/parser/issue-1802-1.stderr b/src/test/ui/parser/issues/issue-1802-1.stderr similarity index 100% rename from src/test/ui/parser/issue-1802-1.stderr rename to src/test/ui/parser/issues/issue-1802-1.stderr diff --git a/src/test/ui/parser/issue-1802-2.rs b/src/test/ui/parser/issues/issue-1802-2.rs similarity index 100% rename from src/test/ui/parser/issue-1802-2.rs rename to src/test/ui/parser/issues/issue-1802-2.rs diff --git a/src/test/ui/parser/issue-1802-2.stderr b/src/test/ui/parser/issues/issue-1802-2.stderr similarity index 100% rename from src/test/ui/parser/issue-1802-2.stderr rename to src/test/ui/parser/issues/issue-1802-2.stderr diff --git a/src/test/ui/parser/issue-19096.rs b/src/test/ui/parser/issues/issue-19096.rs similarity index 100% rename from src/test/ui/parser/issue-19096.rs rename to src/test/ui/parser/issues/issue-19096.rs diff --git a/src/test/ui/parser/issue-19096.stderr b/src/test/ui/parser/issues/issue-19096.stderr similarity index 100% rename from src/test/ui/parser/issue-19096.stderr rename to src/test/ui/parser/issues/issue-19096.stderr diff --git a/src/test/ui/parser/issue-19398.rs b/src/test/ui/parser/issues/issue-19398.rs similarity index 100% rename from src/test/ui/parser/issue-19398.rs rename to src/test/ui/parser/issues/issue-19398.rs diff --git a/src/test/ui/parser/issue-19398.stderr b/src/test/ui/parser/issues/issue-19398.stderr similarity index 100% rename from src/test/ui/parser/issue-19398.stderr rename to src/test/ui/parser/issues/issue-19398.stderr diff --git a/src/test/ui/parser/issue-20616-1.rs b/src/test/ui/parser/issues/issue-20616-1.rs similarity index 100% rename from src/test/ui/parser/issue-20616-1.rs rename to src/test/ui/parser/issues/issue-20616-1.rs diff --git a/src/test/ui/parser/issue-20616-1.stderr b/src/test/ui/parser/issues/issue-20616-1.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-1.stderr rename to src/test/ui/parser/issues/issue-20616-1.stderr diff --git a/src/test/ui/parser/issue-20616-2.rs b/src/test/ui/parser/issues/issue-20616-2.rs similarity index 100% rename from src/test/ui/parser/issue-20616-2.rs rename to src/test/ui/parser/issues/issue-20616-2.rs diff --git a/src/test/ui/parser/issue-20616-2.stderr b/src/test/ui/parser/issues/issue-20616-2.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-2.stderr rename to src/test/ui/parser/issues/issue-20616-2.stderr diff --git a/src/test/ui/parser/issue-20616-3.rs b/src/test/ui/parser/issues/issue-20616-3.rs similarity index 100% rename from src/test/ui/parser/issue-20616-3.rs rename to src/test/ui/parser/issues/issue-20616-3.rs diff --git a/src/test/ui/parser/issue-20616-3.stderr b/src/test/ui/parser/issues/issue-20616-3.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-3.stderr rename to src/test/ui/parser/issues/issue-20616-3.stderr diff --git a/src/test/ui/parser/issue-20616-4.rs b/src/test/ui/parser/issues/issue-20616-4.rs similarity index 100% rename from src/test/ui/parser/issue-20616-4.rs rename to src/test/ui/parser/issues/issue-20616-4.rs diff --git a/src/test/ui/parser/issue-20616-4.stderr b/src/test/ui/parser/issues/issue-20616-4.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-4.stderr rename to src/test/ui/parser/issues/issue-20616-4.stderr diff --git a/src/test/ui/parser/issue-20616-5.rs b/src/test/ui/parser/issues/issue-20616-5.rs similarity index 100% rename from src/test/ui/parser/issue-20616-5.rs rename to src/test/ui/parser/issues/issue-20616-5.rs diff --git a/src/test/ui/parser/issue-20616-5.stderr b/src/test/ui/parser/issues/issue-20616-5.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-5.stderr rename to src/test/ui/parser/issues/issue-20616-5.stderr diff --git a/src/test/ui/parser/issue-20616-6.rs b/src/test/ui/parser/issues/issue-20616-6.rs similarity index 100% rename from src/test/ui/parser/issue-20616-6.rs rename to src/test/ui/parser/issues/issue-20616-6.rs diff --git a/src/test/ui/parser/issue-20616-6.stderr b/src/test/ui/parser/issues/issue-20616-6.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-6.stderr rename to src/test/ui/parser/issues/issue-20616-6.stderr diff --git a/src/test/ui/parser/issue-20616-7.rs b/src/test/ui/parser/issues/issue-20616-7.rs similarity index 100% rename from src/test/ui/parser/issue-20616-7.rs rename to src/test/ui/parser/issues/issue-20616-7.rs diff --git a/src/test/ui/parser/issue-20616-7.stderr b/src/test/ui/parser/issues/issue-20616-7.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-7.stderr rename to src/test/ui/parser/issues/issue-20616-7.stderr diff --git a/src/test/ui/parser/issue-20616-8.rs b/src/test/ui/parser/issues/issue-20616-8.rs similarity index 100% rename from src/test/ui/parser/issue-20616-8.rs rename to src/test/ui/parser/issues/issue-20616-8.rs diff --git a/src/test/ui/parser/issue-20616-8.stderr b/src/test/ui/parser/issues/issue-20616-8.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-8.stderr rename to src/test/ui/parser/issues/issue-20616-8.stderr diff --git a/src/test/ui/parser/issue-20616-9.rs b/src/test/ui/parser/issues/issue-20616-9.rs similarity index 100% rename from src/test/ui/parser/issue-20616-9.rs rename to src/test/ui/parser/issues/issue-20616-9.rs diff --git a/src/test/ui/parser/issue-20616-9.stderr b/src/test/ui/parser/issues/issue-20616-9.stderr similarity index 100% rename from src/test/ui/parser/issue-20616-9.stderr rename to src/test/ui/parser/issues/issue-20616-9.stderr diff --git a/src/test/ui/parser/issue-20711-2.rs b/src/test/ui/parser/issues/issue-20711-2.rs similarity index 100% rename from src/test/ui/parser/issue-20711-2.rs rename to src/test/ui/parser/issues/issue-20711-2.rs diff --git a/src/test/ui/parser/issue-20711-2.stderr b/src/test/ui/parser/issues/issue-20711-2.stderr similarity index 100% rename from src/test/ui/parser/issue-20711-2.stderr rename to src/test/ui/parser/issues/issue-20711-2.stderr diff --git a/src/test/ui/parser/issue-20711.rs b/src/test/ui/parser/issues/issue-20711.rs similarity index 100% rename from src/test/ui/parser/issue-20711.rs rename to src/test/ui/parser/issues/issue-20711.rs diff --git a/src/test/ui/parser/issue-20711.stderr b/src/test/ui/parser/issues/issue-20711.stderr similarity index 100% rename from src/test/ui/parser/issue-20711.stderr rename to src/test/ui/parser/issues/issue-20711.stderr diff --git a/src/test/ui/parser/issue-21146.rs b/src/test/ui/parser/issues/issue-21146.rs similarity index 100% rename from src/test/ui/parser/issue-21146.rs rename to src/test/ui/parser/issues/issue-21146.rs diff --git a/src/test/ui/parser/issue-21146.stderr b/src/test/ui/parser/issues/issue-21146.stderr similarity index 100% rename from src/test/ui/parser/issue-21146.stderr rename to src/test/ui/parser/issues/issue-21146.stderr diff --git a/src/test/ui/parser/issue-21153.rs b/src/test/ui/parser/issues/issue-21153.rs similarity index 100% rename from src/test/ui/parser/issue-21153.rs rename to src/test/ui/parser/issues/issue-21153.rs diff --git a/src/test/ui/parser/issue-21153.stderr b/src/test/ui/parser/issues/issue-21153.stderr similarity index 100% rename from src/test/ui/parser/issue-21153.stderr rename to src/test/ui/parser/issues/issue-21153.stderr diff --git a/src/test/ui/parser/issue-21475.rs b/src/test/ui/parser/issues/issue-21475.rs similarity index 100% rename from src/test/ui/parser/issue-21475.rs rename to src/test/ui/parser/issues/issue-21475.rs diff --git a/src/test/ui/parser/issue-22647.rs b/src/test/ui/parser/issues/issue-22647.rs similarity index 100% rename from src/test/ui/parser/issue-22647.rs rename to src/test/ui/parser/issues/issue-22647.rs diff --git a/src/test/ui/parser/issue-22647.stderr b/src/test/ui/parser/issues/issue-22647.stderr similarity index 100% rename from src/test/ui/parser/issue-22647.stderr rename to src/test/ui/parser/issues/issue-22647.stderr diff --git a/src/test/ui/parser/issue-22712.rs b/src/test/ui/parser/issues/issue-22712.rs similarity index 100% rename from src/test/ui/parser/issue-22712.rs rename to src/test/ui/parser/issues/issue-22712.rs diff --git a/src/test/ui/parser/issue-22712.stderr b/src/test/ui/parser/issues/issue-22712.stderr similarity index 100% rename from src/test/ui/parser/issue-22712.stderr rename to src/test/ui/parser/issues/issue-22712.stderr diff --git a/src/test/ui/parser/issue-2354-1.rs b/src/test/ui/parser/issues/issue-2354-1.rs similarity index 100% rename from src/test/ui/parser/issue-2354-1.rs rename to src/test/ui/parser/issues/issue-2354-1.rs diff --git a/src/test/ui/parser/issue-2354-1.stderr b/src/test/ui/parser/issues/issue-2354-1.stderr similarity index 100% rename from src/test/ui/parser/issue-2354-1.stderr rename to src/test/ui/parser/issues/issue-2354-1.stderr diff --git a/src/test/ui/parser/issue-2354.rs b/src/test/ui/parser/issues/issue-2354.rs similarity index 100% rename from src/test/ui/parser/issue-2354.rs rename to src/test/ui/parser/issues/issue-2354.rs diff --git a/src/test/ui/parser/issue-2354.stderr b/src/test/ui/parser/issues/issue-2354.stderr similarity index 100% rename from src/test/ui/parser/issue-2354.stderr rename to src/test/ui/parser/issues/issue-2354.stderr diff --git a/src/test/ui/parser/issue-23620-invalid-escapes.rs b/src/test/ui/parser/issues/issue-23620-invalid-escapes.rs similarity index 100% rename from src/test/ui/parser/issue-23620-invalid-escapes.rs rename to src/test/ui/parser/issues/issue-23620-invalid-escapes.rs diff --git a/src/test/ui/parser/issue-23620-invalid-escapes.stderr b/src/test/ui/parser/issues/issue-23620-invalid-escapes.stderr similarity index 100% rename from src/test/ui/parser/issue-23620-invalid-escapes.stderr rename to src/test/ui/parser/issues/issue-23620-invalid-escapes.stderr diff --git a/src/test/ui/parser/issue-24197.rs b/src/test/ui/parser/issues/issue-24197.rs similarity index 100% rename from src/test/ui/parser/issue-24197.rs rename to src/test/ui/parser/issues/issue-24197.rs diff --git a/src/test/ui/parser/issue-24197.stderr b/src/test/ui/parser/issues/issue-24197.stderr similarity index 100% rename from src/test/ui/parser/issue-24197.stderr rename to src/test/ui/parser/issues/issue-24197.stderr diff --git a/src/test/ui/parser/issue-24375.rs b/src/test/ui/parser/issues/issue-24375.rs similarity index 100% rename from src/test/ui/parser/issue-24375.rs rename to src/test/ui/parser/issues/issue-24375.rs diff --git a/src/test/ui/parser/issue-24375.stderr b/src/test/ui/parser/issues/issue-24375.stderr similarity index 100% rename from src/test/ui/parser/issue-24375.stderr rename to src/test/ui/parser/issues/issue-24375.stderr diff --git a/src/test/ui/parser/issue-24780.rs b/src/test/ui/parser/issues/issue-24780.rs similarity index 100% rename from src/test/ui/parser/issue-24780.rs rename to src/test/ui/parser/issues/issue-24780.rs diff --git a/src/test/ui/parser/issue-24780.stderr b/src/test/ui/parser/issues/issue-24780.stderr similarity index 100% rename from src/test/ui/parser/issue-24780.stderr rename to src/test/ui/parser/issues/issue-24780.stderr diff --git a/src/test/ui/parser/issue-27255.rs b/src/test/ui/parser/issues/issue-27255.rs similarity index 100% rename from src/test/ui/parser/issue-27255.rs rename to src/test/ui/parser/issues/issue-27255.rs diff --git a/src/test/ui/parser/issue-27255.stderr b/src/test/ui/parser/issues/issue-27255.stderr similarity index 100% rename from src/test/ui/parser/issue-27255.stderr rename to src/test/ui/parser/issues/issue-27255.stderr diff --git a/src/test/ui/parser/issue-30318.fixed b/src/test/ui/parser/issues/issue-30318.fixed similarity index 100% rename from src/test/ui/parser/issue-30318.fixed rename to src/test/ui/parser/issues/issue-30318.fixed diff --git a/src/test/ui/parser/issue-30318.rs b/src/test/ui/parser/issues/issue-30318.rs similarity index 100% rename from src/test/ui/parser/issue-30318.rs rename to src/test/ui/parser/issues/issue-30318.rs diff --git a/src/test/ui/parser/issue-30318.stderr b/src/test/ui/parser/issues/issue-30318.stderr similarity index 100% rename from src/test/ui/parser/issue-30318.stderr rename to src/test/ui/parser/issues/issue-30318.stderr diff --git a/src/test/ui/parser/issue-3036.fixed b/src/test/ui/parser/issues/issue-3036.fixed similarity index 100% rename from src/test/ui/parser/issue-3036.fixed rename to src/test/ui/parser/issues/issue-3036.fixed diff --git a/src/test/ui/parser/issue-3036.rs b/src/test/ui/parser/issues/issue-3036.rs similarity index 100% rename from src/test/ui/parser/issue-3036.rs rename to src/test/ui/parser/issues/issue-3036.rs diff --git a/src/test/ui/parser/issue-3036.stderr b/src/test/ui/parser/issues/issue-3036.stderr similarity index 100% rename from src/test/ui/parser/issue-3036.stderr rename to src/test/ui/parser/issues/issue-3036.stderr diff --git a/src/test/ui/parser/issue-31804.rs b/src/test/ui/parser/issues/issue-31804.rs similarity index 100% rename from src/test/ui/parser/issue-31804.rs rename to src/test/ui/parser/issues/issue-31804.rs diff --git a/src/test/ui/parser/issue-31804.stderr b/src/test/ui/parser/issues/issue-31804.stderr similarity index 100% rename from src/test/ui/parser/issue-31804.stderr rename to src/test/ui/parser/issues/issue-31804.stderr diff --git a/src/test/ui/parser/issue-32214.rs b/src/test/ui/parser/issues/issue-32214.rs similarity index 100% rename from src/test/ui/parser/issue-32214.rs rename to src/test/ui/parser/issues/issue-32214.rs diff --git a/src/test/ui/parser/issue-32214.stderr b/src/test/ui/parser/issues/issue-32214.stderr similarity index 100% rename from src/test/ui/parser/issue-32214.stderr rename to src/test/ui/parser/issues/issue-32214.stderr diff --git a/src/test/ui/parser/issue-32446.rs b/src/test/ui/parser/issues/issue-32446.rs similarity index 100% rename from src/test/ui/parser/issue-32446.rs rename to src/test/ui/parser/issues/issue-32446.rs diff --git a/src/test/ui/parser/issue-32446.stderr b/src/test/ui/parser/issues/issue-32446.stderr similarity index 100% rename from src/test/ui/parser/issue-32446.stderr rename to src/test/ui/parser/issues/issue-32446.stderr diff --git a/src/test/ui/parser/issue-32501.rs b/src/test/ui/parser/issues/issue-32501.rs similarity index 100% rename from src/test/ui/parser/issue-32501.rs rename to src/test/ui/parser/issues/issue-32501.rs diff --git a/src/test/ui/parser/issue-32501.stderr b/src/test/ui/parser/issues/issue-32501.stderr similarity index 100% rename from src/test/ui/parser/issue-32501.stderr rename to src/test/ui/parser/issues/issue-32501.stderr diff --git a/src/test/ui/parser/issue-32505.rs b/src/test/ui/parser/issues/issue-32505.rs similarity index 100% rename from src/test/ui/parser/issue-32505.rs rename to src/test/ui/parser/issues/issue-32505.rs diff --git a/src/test/ui/parser/issue-32505.stderr b/src/test/ui/parser/issues/issue-32505.stderr similarity index 100% rename from src/test/ui/parser/issue-32505.stderr rename to src/test/ui/parser/issues/issue-32505.stderr diff --git a/src/test/ui/parser/issue-33262.rs b/src/test/ui/parser/issues/issue-33262.rs similarity index 100% rename from src/test/ui/parser/issue-33262.rs rename to src/test/ui/parser/issues/issue-33262.rs diff --git a/src/test/ui/parser/issue-33262.stderr b/src/test/ui/parser/issues/issue-33262.stderr similarity index 100% rename from src/test/ui/parser/issue-33262.stderr rename to src/test/ui/parser/issues/issue-33262.stderr diff --git a/src/test/ui/parser/issue-33413.rs b/src/test/ui/parser/issues/issue-33413.rs similarity index 100% rename from src/test/ui/parser/issue-33413.rs rename to src/test/ui/parser/issues/issue-33413.rs diff --git a/src/test/ui/parser/issue-33413.stderr b/src/test/ui/parser/issues/issue-33413.stderr similarity index 100% rename from src/test/ui/parser/issue-33413.stderr rename to src/test/ui/parser/issues/issue-33413.stderr diff --git a/src/test/ui/parser/issue-33418.fixed b/src/test/ui/parser/issues/issue-33418.fixed similarity index 100% rename from src/test/ui/parser/issue-33418.fixed rename to src/test/ui/parser/issues/issue-33418.fixed diff --git a/src/test/ui/parser/issue-33418.rs b/src/test/ui/parser/issues/issue-33418.rs similarity index 100% rename from src/test/ui/parser/issue-33418.rs rename to src/test/ui/parser/issues/issue-33418.rs diff --git a/src/test/ui/parser/issue-33418.stderr b/src/test/ui/parser/issues/issue-33418.stderr similarity index 100% rename from src/test/ui/parser/issue-33418.stderr rename to src/test/ui/parser/issues/issue-33418.stderr diff --git a/src/test/ui/parser/issue-33455.rs b/src/test/ui/parser/issues/issue-33455.rs similarity index 100% rename from src/test/ui/parser/issue-33455.rs rename to src/test/ui/parser/issues/issue-33455.rs diff --git a/src/test/ui/parser/issue-33455.stderr b/src/test/ui/parser/issues/issue-33455.stderr similarity index 100% rename from src/test/ui/parser/issue-33455.stderr rename to src/test/ui/parser/issues/issue-33455.stderr diff --git a/src/test/ui/parser/issue-34222-1.rs b/src/test/ui/parser/issues/issue-34222-1.rs similarity index 100% rename from src/test/ui/parser/issue-34222-1.rs rename to src/test/ui/parser/issues/issue-34222-1.rs diff --git a/src/test/ui/parser/issue-34222-1.stderr b/src/test/ui/parser/issues/issue-34222-1.stderr similarity index 100% rename from src/test/ui/parser/issue-34222-1.stderr rename to src/test/ui/parser/issues/issue-34222-1.stderr diff --git a/src/test/ui/parser/issue-34255-1.rs b/src/test/ui/parser/issues/issue-34255-1.rs similarity index 100% rename from src/test/ui/parser/issue-34255-1.rs rename to src/test/ui/parser/issues/issue-34255-1.rs diff --git a/src/test/ui/parser/issue-34255-1.stderr b/src/test/ui/parser/issues/issue-34255-1.stderr similarity index 100% rename from src/test/ui/parser/issue-34255-1.stderr rename to src/test/ui/parser/issues/issue-34255-1.stderr diff --git a/src/test/ui/parser/issue-35813-postfix-after-cast.rs b/src/test/ui/parser/issues/issue-35813-postfix-after-cast.rs similarity index 100% rename from src/test/ui/parser/issue-35813-postfix-after-cast.rs rename to src/test/ui/parser/issues/issue-35813-postfix-after-cast.rs diff --git a/src/test/ui/parser/issue-35813-postfix-after-cast.stderr b/src/test/ui/parser/issues/issue-35813-postfix-after-cast.stderr similarity index 100% rename from src/test/ui/parser/issue-35813-postfix-after-cast.stderr rename to src/test/ui/parser/issues/issue-35813-postfix-after-cast.stderr diff --git a/src/test/ui/parser/issue-41155.rs b/src/test/ui/parser/issues/issue-41155.rs similarity index 100% rename from src/test/ui/parser/issue-41155.rs rename to src/test/ui/parser/issues/issue-41155.rs diff --git a/src/test/ui/parser/issue-41155.stderr b/src/test/ui/parser/issues/issue-41155.stderr similarity index 100% rename from src/test/ui/parser/issue-41155.stderr rename to src/test/ui/parser/issues/issue-41155.stderr diff --git a/src/test/ui/parser/issue-43196.rs b/src/test/ui/parser/issues/issue-43196.rs similarity index 100% rename from src/test/ui/parser/issue-43196.rs rename to src/test/ui/parser/issues/issue-43196.rs diff --git a/src/test/ui/parser/issue-43196.stderr b/src/test/ui/parser/issues/issue-43196.stderr similarity index 100% rename from src/test/ui/parser/issue-43196.stderr rename to src/test/ui/parser/issues/issue-43196.stderr diff --git a/src/test/ui/parser/issue-43692.rs b/src/test/ui/parser/issues/issue-43692.rs similarity index 100% rename from src/test/ui/parser/issue-43692.rs rename to src/test/ui/parser/issues/issue-43692.rs diff --git a/src/test/ui/parser/issue-43692.stderr b/src/test/ui/parser/issues/issue-43692.stderr similarity index 100% rename from src/test/ui/parser/issue-43692.stderr rename to src/test/ui/parser/issues/issue-43692.stderr diff --git a/src/test/ui/parser/issue-44021.rs b/src/test/ui/parser/issues/issue-44021.rs similarity index 100% rename from src/test/ui/parser/issue-44021.rs rename to src/test/ui/parser/issues/issue-44021.rs diff --git a/src/test/ui/parser/issue-44021.stderr b/src/test/ui/parser/issues/issue-44021.stderr similarity index 100% rename from src/test/ui/parser/issue-44021.stderr rename to src/test/ui/parser/issues/issue-44021.stderr diff --git a/src/test/ui/parser/issue-44406.rs b/src/test/ui/parser/issues/issue-44406.rs similarity index 100% rename from src/test/ui/parser/issue-44406.rs rename to src/test/ui/parser/issues/issue-44406.rs diff --git a/src/test/ui/parser/issue-44406.stderr b/src/test/ui/parser/issues/issue-44406.stderr similarity index 100% rename from src/test/ui/parser/issue-44406.stderr rename to src/test/ui/parser/issues/issue-44406.stderr diff --git a/src/test/ui/parser/issue-45296.rs b/src/test/ui/parser/issues/issue-45296.rs similarity index 100% rename from src/test/ui/parser/issue-45296.rs rename to src/test/ui/parser/issues/issue-45296.rs diff --git a/src/test/ui/parser/issue-45296.stderr b/src/test/ui/parser/issues/issue-45296.stderr similarity index 100% rename from src/test/ui/parser/issue-45296.stderr rename to src/test/ui/parser/issues/issue-45296.stderr diff --git a/src/test/ui/parser/issue-46186.fixed b/src/test/ui/parser/issues/issue-46186.fixed similarity index 100% rename from src/test/ui/parser/issue-46186.fixed rename to src/test/ui/parser/issues/issue-46186.fixed diff --git a/src/test/ui/parser/issue-46186.rs b/src/test/ui/parser/issues/issue-46186.rs similarity index 100% rename from src/test/ui/parser/issue-46186.rs rename to src/test/ui/parser/issues/issue-46186.rs diff --git a/src/test/ui/parser/issue-46186.stderr b/src/test/ui/parser/issues/issue-46186.stderr similarity index 100% rename from src/test/ui/parser/issue-46186.stderr rename to src/test/ui/parser/issues/issue-46186.stderr diff --git a/src/test/ui/parser/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs b/src/test/ui/parser/issues/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs similarity index 100% rename from src/test/ui/parser/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs rename to src/test/ui/parser/issues/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs diff --git a/src/test/ui/parser/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.stderr b/src/test/ui/parser/issues/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.stderr similarity index 100% rename from src/test/ui/parser/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.stderr rename to src/test/ui/parser/issues/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.stderr diff --git a/src/test/ui/parser/issue-48137-macros-cannot-interpolate-impl-items.rs b/src/test/ui/parser/issues/issue-48137-macros-cannot-interpolate-impl-items.rs similarity index 100% rename from src/test/ui/parser/issue-48137-macros-cannot-interpolate-impl-items.rs rename to src/test/ui/parser/issues/issue-48137-macros-cannot-interpolate-impl-items.rs diff --git a/src/test/ui/parser/issue-48508-aux.rs b/src/test/ui/parser/issues/issue-48508-aux.rs similarity index 100% rename from src/test/ui/parser/issue-48508-aux.rs rename to src/test/ui/parser/issues/issue-48508-aux.rs diff --git a/src/test/ui/parser/issue-48508.rs b/src/test/ui/parser/issues/issue-48508.rs similarity index 100% rename from src/test/ui/parser/issue-48508.rs rename to src/test/ui/parser/issues/issue-48508.rs diff --git a/src/test/ui/parser/issue-48636.fixed b/src/test/ui/parser/issues/issue-48636.fixed similarity index 100% rename from src/test/ui/parser/issue-48636.fixed rename to src/test/ui/parser/issues/issue-48636.fixed diff --git a/src/test/ui/parser/issue-48636.rs b/src/test/ui/parser/issues/issue-48636.rs similarity index 100% rename from src/test/ui/parser/issue-48636.rs rename to src/test/ui/parser/issues/issue-48636.rs diff --git a/src/test/ui/parser/issue-48636.stderr b/src/test/ui/parser/issues/issue-48636.stderr similarity index 100% rename from src/test/ui/parser/issue-48636.stderr rename to src/test/ui/parser/issues/issue-48636.stderr diff --git a/src/test/ui/parser/issue-49040.rs b/src/test/ui/parser/issues/issue-49040.rs similarity index 100% rename from src/test/ui/parser/issue-49040.rs rename to src/test/ui/parser/issues/issue-49040.rs diff --git a/src/test/ui/parser/issue-49040.stderr b/src/test/ui/parser/issues/issue-49040.stderr similarity index 100% rename from src/test/ui/parser/issue-49040.stderr rename to src/test/ui/parser/issues/issue-49040.stderr diff --git a/src/test/ui/parser/issue-51602.rs b/src/test/ui/parser/issues/issue-51602.rs similarity index 100% rename from src/test/ui/parser/issue-51602.rs rename to src/test/ui/parser/issues/issue-51602.rs diff --git a/src/test/ui/parser/issue-51602.stderr b/src/test/ui/parser/issues/issue-51602.stderr similarity index 100% rename from src/test/ui/parser/issue-51602.stderr rename to src/test/ui/parser/issues/issue-51602.stderr diff --git a/src/test/ui/parser/issue-52496.rs b/src/test/ui/parser/issues/issue-52496.rs similarity index 100% rename from src/test/ui/parser/issue-52496.rs rename to src/test/ui/parser/issues/issue-52496.rs diff --git a/src/test/ui/parser/issue-52496.stderr b/src/test/ui/parser/issues/issue-52496.stderr similarity index 100% rename from src/test/ui/parser/issue-52496.stderr rename to src/test/ui/parser/issues/issue-52496.stderr diff --git a/src/test/ui/parser/issue-54521-1.rs b/src/test/ui/parser/issues/issue-54521-1.rs similarity index 100% rename from src/test/ui/parser/issue-54521-1.rs rename to src/test/ui/parser/issues/issue-54521-1.rs diff --git a/src/test/ui/parser/issue-54521-2.fixed b/src/test/ui/parser/issues/issue-54521-2.fixed similarity index 100% rename from src/test/ui/parser/issue-54521-2.fixed rename to src/test/ui/parser/issues/issue-54521-2.fixed diff --git a/src/test/ui/parser/issue-54521-2.rs b/src/test/ui/parser/issues/issue-54521-2.rs similarity index 100% rename from src/test/ui/parser/issue-54521-2.rs rename to src/test/ui/parser/issues/issue-54521-2.rs diff --git a/src/test/ui/parser/issue-54521-2.stderr b/src/test/ui/parser/issues/issue-54521-2.stderr similarity index 100% rename from src/test/ui/parser/issue-54521-2.stderr rename to src/test/ui/parser/issues/issue-54521-2.stderr diff --git a/src/test/ui/parser/issue-54521-3.fixed b/src/test/ui/parser/issues/issue-54521-3.fixed similarity index 100% rename from src/test/ui/parser/issue-54521-3.fixed rename to src/test/ui/parser/issues/issue-54521-3.fixed diff --git a/src/test/ui/parser/issue-54521-3.rs b/src/test/ui/parser/issues/issue-54521-3.rs similarity index 100% rename from src/test/ui/parser/issue-54521-3.rs rename to src/test/ui/parser/issues/issue-54521-3.rs diff --git a/src/test/ui/parser/issue-54521-3.stderr b/src/test/ui/parser/issues/issue-54521-3.stderr similarity index 100% rename from src/test/ui/parser/issue-54521-3.stderr rename to src/test/ui/parser/issues/issue-54521-3.stderr diff --git a/src/test/ui/parser/issue-5544-a.rs b/src/test/ui/parser/issues/issue-5544-a.rs similarity index 100% rename from src/test/ui/parser/issue-5544-a.rs rename to src/test/ui/parser/issues/issue-5544-a.rs diff --git a/src/test/ui/parser/issue-5544-a.stderr b/src/test/ui/parser/issues/issue-5544-a.stderr similarity index 100% rename from src/test/ui/parser/issue-5544-a.stderr rename to src/test/ui/parser/issues/issue-5544-a.stderr diff --git a/src/test/ui/parser/issue-5544-b.rs b/src/test/ui/parser/issues/issue-5544-b.rs similarity index 100% rename from src/test/ui/parser/issue-5544-b.rs rename to src/test/ui/parser/issues/issue-5544-b.rs diff --git a/src/test/ui/parser/issue-5544-b.stderr b/src/test/ui/parser/issues/issue-5544-b.stderr similarity index 100% rename from src/test/ui/parser/issue-5544-b.stderr rename to src/test/ui/parser/issues/issue-5544-b.stderr diff --git a/src/test/ui/parser/issue-56031.rs b/src/test/ui/parser/issues/issue-56031.rs similarity index 100% rename from src/test/ui/parser/issue-56031.rs rename to src/test/ui/parser/issues/issue-56031.rs diff --git a/src/test/ui/parser/issue-56031.stderr b/src/test/ui/parser/issues/issue-56031.stderr similarity index 100% rename from src/test/ui/parser/issue-56031.stderr rename to src/test/ui/parser/issues/issue-56031.stderr diff --git a/src/test/ui/parser/issue-57198.rs b/src/test/ui/parser/issues/issue-57198.rs similarity index 100% rename from src/test/ui/parser/issue-57198.rs rename to src/test/ui/parser/issues/issue-57198.rs diff --git a/src/test/ui/parser/issue-57198.stderr b/src/test/ui/parser/issues/issue-57198.stderr similarity index 100% rename from src/test/ui/parser/issue-57198.stderr rename to src/test/ui/parser/issues/issue-57198.stderr diff --git a/src/test/ui/parser/issue-57684.fixed b/src/test/ui/parser/issues/issue-57684.fixed similarity index 100% rename from src/test/ui/parser/issue-57684.fixed rename to src/test/ui/parser/issues/issue-57684.fixed diff --git a/src/test/ui/parser/issue-57684.rs b/src/test/ui/parser/issues/issue-57684.rs similarity index 100% rename from src/test/ui/parser/issue-57684.rs rename to src/test/ui/parser/issues/issue-57684.rs diff --git a/src/test/ui/parser/issue-57684.stderr b/src/test/ui/parser/issues/issue-57684.stderr similarity index 100% rename from src/test/ui/parser/issue-57684.stderr rename to src/test/ui/parser/issues/issue-57684.stderr diff --git a/src/test/ui/parser/issue-57819.fixed b/src/test/ui/parser/issues/issue-57819.fixed similarity index 100% rename from src/test/ui/parser/issue-57819.fixed rename to src/test/ui/parser/issues/issue-57819.fixed diff --git a/src/test/ui/parser/issue-57819.rs b/src/test/ui/parser/issues/issue-57819.rs similarity index 100% rename from src/test/ui/parser/issue-57819.rs rename to src/test/ui/parser/issues/issue-57819.rs diff --git a/src/test/ui/parser/issue-57819.stderr b/src/test/ui/parser/issues/issue-57819.stderr similarity index 100% rename from src/test/ui/parser/issue-57819.stderr rename to src/test/ui/parser/issues/issue-57819.stderr diff --git a/src/test/ui/parser/issue-5806.rs b/src/test/ui/parser/issues/issue-5806.rs similarity index 100% rename from src/test/ui/parser/issue-5806.rs rename to src/test/ui/parser/issues/issue-5806.rs diff --git a/src/test/ui/parser/issue-5806.stderr b/src/test/ui/parser/issues/issue-5806.stderr similarity index 100% rename from src/test/ui/parser/issue-5806.stderr rename to src/test/ui/parser/issues/issue-5806.stderr diff --git a/src/test/ui/parser/issue-58094-missing-right-square-bracket.rs b/src/test/ui/parser/issues/issue-58094-missing-right-square-bracket.rs similarity index 100% rename from src/test/ui/parser/issue-58094-missing-right-square-bracket.rs rename to src/test/ui/parser/issues/issue-58094-missing-right-square-bracket.rs diff --git a/src/test/ui/parser/issue-58094-missing-right-square-bracket.stderr b/src/test/ui/parser/issues/issue-58094-missing-right-square-bracket.stderr similarity index 100% rename from src/test/ui/parser/issue-58094-missing-right-square-bracket.stderr rename to src/test/ui/parser/issues/issue-58094-missing-right-square-bracket.stderr diff --git a/src/test/ui/parser/issue-58856-1.rs b/src/test/ui/parser/issues/issue-58856-1.rs similarity index 100% rename from src/test/ui/parser/issue-58856-1.rs rename to src/test/ui/parser/issues/issue-58856-1.rs diff --git a/src/test/ui/parser/issue-58856-1.stderr b/src/test/ui/parser/issues/issue-58856-1.stderr similarity index 100% rename from src/test/ui/parser/issue-58856-1.stderr rename to src/test/ui/parser/issues/issue-58856-1.stderr diff --git a/src/test/ui/parser/issue-58856-2.rs b/src/test/ui/parser/issues/issue-58856-2.rs similarity index 100% rename from src/test/ui/parser/issue-58856-2.rs rename to src/test/ui/parser/issues/issue-58856-2.rs diff --git a/src/test/ui/parser/issue-58856-2.stderr b/src/test/ui/parser/issues/issue-58856-2.stderr similarity index 100% rename from src/test/ui/parser/issue-58856-2.stderr rename to src/test/ui/parser/issues/issue-58856-2.stderr diff --git a/src/test/ui/parser/issue-59418.rs b/src/test/ui/parser/issues/issue-59418.rs similarity index 100% rename from src/test/ui/parser/issue-59418.rs rename to src/test/ui/parser/issues/issue-59418.rs diff --git a/src/test/ui/parser/issue-59418.stderr b/src/test/ui/parser/issues/issue-59418.stderr similarity index 100% rename from src/test/ui/parser/issue-59418.stderr rename to src/test/ui/parser/issues/issue-59418.stderr diff --git a/src/test/ui/parser/issue-60075.rs b/src/test/ui/parser/issues/issue-60075.rs similarity index 100% rename from src/test/ui/parser/issue-60075.rs rename to src/test/ui/parser/issues/issue-60075.rs diff --git a/src/test/ui/parser/issue-60075.stderr b/src/test/ui/parser/issues/issue-60075.stderr similarity index 100% rename from src/test/ui/parser/issue-60075.stderr rename to src/test/ui/parser/issues/issue-60075.stderr diff --git a/src/test/ui/parser/issue-62524.rs b/src/test/ui/parser/issues/issue-62524.rs similarity index 100% rename from src/test/ui/parser/issue-62524.rs rename to src/test/ui/parser/issues/issue-62524.rs diff --git a/src/test/ui/parser/issue-62524.stderr b/src/test/ui/parser/issues/issue-62524.stderr similarity index 100% rename from src/test/ui/parser/issue-62524.stderr rename to src/test/ui/parser/issues/issue-62524.stderr diff --git a/src/test/ui/parser/issue-62546.rs b/src/test/ui/parser/issues/issue-62546.rs similarity index 100% rename from src/test/ui/parser/issue-62546.rs rename to src/test/ui/parser/issues/issue-62546.rs diff --git a/src/test/ui/parser/issue-62546.stderr b/src/test/ui/parser/issues/issue-62546.stderr similarity index 100% rename from src/test/ui/parser/issue-62546.stderr rename to src/test/ui/parser/issues/issue-62546.stderr diff --git a/src/test/ui/parser/issue-62554.rs b/src/test/ui/parser/issues/issue-62554.rs similarity index 100% rename from src/test/ui/parser/issue-62554.rs rename to src/test/ui/parser/issues/issue-62554.rs diff --git a/src/test/ui/parser/issue-62554.stderr b/src/test/ui/parser/issues/issue-62554.stderr similarity index 100% rename from src/test/ui/parser/issue-62554.stderr rename to src/test/ui/parser/issues/issue-62554.stderr diff --git a/src/test/ui/parser/issue-62660.rs b/src/test/ui/parser/issues/issue-62660.rs similarity index 100% rename from src/test/ui/parser/issue-62660.rs rename to src/test/ui/parser/issues/issue-62660.rs diff --git a/src/test/ui/parser/issue-62660.stderr b/src/test/ui/parser/issues/issue-62660.stderr similarity index 100% rename from src/test/ui/parser/issue-62660.stderr rename to src/test/ui/parser/issues/issue-62660.stderr diff --git a/src/test/ui/parser/issue-62881.rs b/src/test/ui/parser/issues/issue-62881.rs similarity index 100% rename from src/test/ui/parser/issue-62881.rs rename to src/test/ui/parser/issues/issue-62881.rs diff --git a/src/test/ui/parser/issue-62881.stderr b/src/test/ui/parser/issues/issue-62881.stderr similarity index 100% rename from src/test/ui/parser/issue-62881.stderr rename to src/test/ui/parser/issues/issue-62881.stderr diff --git a/src/test/ui/parser/issue-62894.rs b/src/test/ui/parser/issues/issue-62894.rs similarity index 100% rename from src/test/ui/parser/issue-62894.rs rename to src/test/ui/parser/issues/issue-62894.rs diff --git a/src/test/ui/parser/issue-62894.stderr b/src/test/ui/parser/issues/issue-62894.stderr similarity index 100% rename from src/test/ui/parser/issue-62894.stderr rename to src/test/ui/parser/issues/issue-62894.stderr diff --git a/src/test/ui/parser/issue-62895.rs b/src/test/ui/parser/issues/issue-62895.rs similarity index 100% rename from src/test/ui/parser/issue-62895.rs rename to src/test/ui/parser/issues/issue-62895.rs diff --git a/src/test/ui/parser/issue-62895.stderr b/src/test/ui/parser/issues/issue-62895.stderr similarity index 100% rename from src/test/ui/parser/issue-62895.stderr rename to src/test/ui/parser/issues/issue-62895.stderr diff --git a/src/test/ui/parser/issue-62913.rs b/src/test/ui/parser/issues/issue-62913.rs similarity index 100% rename from src/test/ui/parser/issue-62913.rs rename to src/test/ui/parser/issues/issue-62913.rs diff --git a/src/test/ui/parser/issue-62913.stderr b/src/test/ui/parser/issues/issue-62913.stderr similarity index 100% rename from src/test/ui/parser/issue-62913.stderr rename to src/test/ui/parser/issues/issue-62913.stderr diff --git a/src/test/ui/parser/issue-62973.rs b/src/test/ui/parser/issues/issue-62973.rs similarity index 100% rename from src/test/ui/parser/issue-62973.rs rename to src/test/ui/parser/issues/issue-62973.rs diff --git a/src/test/ui/parser/issue-62973.stderr b/src/test/ui/parser/issues/issue-62973.stderr similarity index 100% rename from src/test/ui/parser/issue-62973.stderr rename to src/test/ui/parser/issues/issue-62973.stderr diff --git a/src/test/ui/parser/issue-63115-range-pat-interpolated.rs b/src/test/ui/parser/issues/issue-63115-range-pat-interpolated.rs similarity index 100% rename from src/test/ui/parser/issue-63115-range-pat-interpolated.rs rename to src/test/ui/parser/issues/issue-63115-range-pat-interpolated.rs diff --git a/src/test/ui/parser/issue-63116.rs b/src/test/ui/parser/issues/issue-63116.rs similarity index 100% rename from src/test/ui/parser/issue-63116.rs rename to src/test/ui/parser/issues/issue-63116.rs diff --git a/src/test/ui/parser/issue-63116.stderr b/src/test/ui/parser/issues/issue-63116.stderr similarity index 100% rename from src/test/ui/parser/issue-63116.stderr rename to src/test/ui/parser/issues/issue-63116.stderr diff --git a/src/test/ui/parser/issue-63135.rs b/src/test/ui/parser/issues/issue-63135.rs similarity index 100% rename from src/test/ui/parser/issue-63135.rs rename to src/test/ui/parser/issues/issue-63135.rs diff --git a/src/test/ui/parser/issue-63135.stderr b/src/test/ui/parser/issues/issue-63135.stderr similarity index 100% rename from src/test/ui/parser/issue-63135.stderr rename to src/test/ui/parser/issues/issue-63135.stderr diff --git a/src/test/ui/parser/issue-64732.rs b/src/test/ui/parser/issues/issue-64732.rs similarity index 100% rename from src/test/ui/parser/issue-64732.rs rename to src/test/ui/parser/issues/issue-64732.rs diff --git a/src/test/ui/parser/issue-64732.stderr b/src/test/ui/parser/issues/issue-64732.stderr similarity index 100% rename from src/test/ui/parser/issue-64732.stderr rename to src/test/ui/parser/issues/issue-64732.stderr diff --git a/src/test/ui/parser/issue-65041-empty-vis-matcher-in-enum.rs b/src/test/ui/parser/issues/issue-65041-empty-vis-matcher-in-enum.rs similarity index 100% rename from src/test/ui/parser/issue-65041-empty-vis-matcher-in-enum.rs rename to src/test/ui/parser/issues/issue-65041-empty-vis-matcher-in-enum.rs diff --git a/src/test/ui/parser/issue-65041-empty-vis-matcher-in-trait.rs b/src/test/ui/parser/issues/issue-65041-empty-vis-matcher-in-trait.rs similarity index 100% rename from src/test/ui/parser/issue-65041-empty-vis-matcher-in-trait.rs rename to src/test/ui/parser/issues/issue-65041-empty-vis-matcher-in-trait.rs diff --git a/src/test/ui/parser/issue-65122-mac-invoc-in-mut-patterns.rs b/src/test/ui/parser/issues/issue-65122-mac-invoc-in-mut-patterns.rs similarity index 100% rename from src/test/ui/parser/issue-65122-mac-invoc-in-mut-patterns.rs rename to src/test/ui/parser/issues/issue-65122-mac-invoc-in-mut-patterns.rs diff --git a/src/test/ui/parser/issue-65122-mac-invoc-in-mut-patterns.stderr b/src/test/ui/parser/issues/issue-65122-mac-invoc-in-mut-patterns.stderr similarity index 100% rename from src/test/ui/parser/issue-65122-mac-invoc-in-mut-patterns.stderr rename to src/test/ui/parser/issues/issue-65122-mac-invoc-in-mut-patterns.stderr diff --git a/src/test/ui/parser/issue-65257-invalid-var-decl-recovery.rs b/src/test/ui/parser/issues/issue-65257-invalid-var-decl-recovery.rs similarity index 100% rename from src/test/ui/parser/issue-65257-invalid-var-decl-recovery.rs rename to src/test/ui/parser/issues/issue-65257-invalid-var-decl-recovery.rs diff --git a/src/test/ui/parser/issue-65257-invalid-var-decl-recovery.stderr b/src/test/ui/parser/issues/issue-65257-invalid-var-decl-recovery.stderr similarity index 100% rename from src/test/ui/parser/issue-65257-invalid-var-decl-recovery.stderr rename to src/test/ui/parser/issues/issue-65257-invalid-var-decl-recovery.stderr diff --git a/src/test/ui/parser/issue-65846-rollback-gating-failing-matcher.rs b/src/test/ui/parser/issues/issue-65846-rollback-gating-failing-matcher.rs similarity index 100% rename from src/test/ui/parser/issue-65846-rollback-gating-failing-matcher.rs rename to src/test/ui/parser/issues/issue-65846-rollback-gating-failing-matcher.rs diff --git a/src/test/ui/parser/issue-6610.rs b/src/test/ui/parser/issues/issue-6610.rs similarity index 100% rename from src/test/ui/parser/issue-6610.rs rename to src/test/ui/parser/issues/issue-6610.rs diff --git a/src/test/ui/parser/issue-6610.stderr b/src/test/ui/parser/issues/issue-6610.stderr similarity index 100% rename from src/test/ui/parser/issue-6610.stderr rename to src/test/ui/parser/issues/issue-6610.stderr diff --git a/src/test/ui/parser/issue-66357-unexpected-unreachable.rs b/src/test/ui/parser/issues/issue-66357-unexpected-unreachable.rs similarity index 100% rename from src/test/ui/parser/issue-66357-unexpected-unreachable.rs rename to src/test/ui/parser/issues/issue-66357-unexpected-unreachable.rs diff --git a/src/test/ui/parser/issue-66357-unexpected-unreachable.stderr b/src/test/ui/parser/issues/issue-66357-unexpected-unreachable.stderr similarity index 100% rename from src/test/ui/parser/issue-66357-unexpected-unreachable.stderr rename to src/test/ui/parser/issues/issue-66357-unexpected-unreachable.stderr diff --git a/src/test/ui/parser/issue-66473.rs b/src/test/ui/parser/issues/issue-66473.rs similarity index 100% rename from src/test/ui/parser/issue-66473.rs rename to src/test/ui/parser/issues/issue-66473.rs diff --git a/src/test/ui/parser/issue-66473.stderr b/src/test/ui/parser/issues/issue-66473.stderr similarity index 100% rename from src/test/ui/parser/issue-66473.stderr rename to src/test/ui/parser/issues/issue-66473.stderr diff --git a/src/test/ui/parser/issue-67146-negative-outlives-bound-syntactic-fail.fixed b/src/test/ui/parser/issues/issue-67146-negative-outlives-bound-syntactic-fail.fixed similarity index 100% rename from src/test/ui/parser/issue-67146-negative-outlives-bound-syntactic-fail.fixed rename to src/test/ui/parser/issues/issue-67146-negative-outlives-bound-syntactic-fail.fixed diff --git a/src/test/ui/parser/issue-67146-negative-outlives-bound-syntactic-fail.rs b/src/test/ui/parser/issues/issue-67146-negative-outlives-bound-syntactic-fail.rs similarity index 100% rename from src/test/ui/parser/issue-67146-negative-outlives-bound-syntactic-fail.rs rename to src/test/ui/parser/issues/issue-67146-negative-outlives-bound-syntactic-fail.rs diff --git a/src/test/ui/parser/issue-67146-negative-outlives-bound-syntactic-fail.stderr b/src/test/ui/parser/issues/issue-67146-negative-outlives-bound-syntactic-fail.stderr similarity index 100% rename from src/test/ui/parser/issue-67146-negative-outlives-bound-syntactic-fail.stderr rename to src/test/ui/parser/issues/issue-67146-negative-outlives-bound-syntactic-fail.stderr diff --git a/src/test/ui/parser/issue-67377-invalid-syntax-in-enum-discriminant.rs b/src/test/ui/parser/issues/issue-67377-invalid-syntax-in-enum-discriminant.rs similarity index 100% rename from src/test/ui/parser/issue-67377-invalid-syntax-in-enum-discriminant.rs rename to src/test/ui/parser/issues/issue-67377-invalid-syntax-in-enum-discriminant.rs diff --git a/src/test/ui/parser/issue-67377-invalid-syntax-in-enum-discriminant.stderr b/src/test/ui/parser/issues/issue-67377-invalid-syntax-in-enum-discriminant.stderr similarity index 100% rename from src/test/ui/parser/issue-67377-invalid-syntax-in-enum-discriminant.stderr rename to src/test/ui/parser/issues/issue-67377-invalid-syntax-in-enum-discriminant.stderr diff --git a/src/test/ui/parser/issue-68000-unicode-ident-after-missing-comma.rs b/src/test/ui/parser/issues/issue-68000-unicode-ident-after-missing-comma.rs similarity index 100% rename from src/test/ui/parser/issue-68000-unicode-ident-after-missing-comma.rs rename to src/test/ui/parser/issues/issue-68000-unicode-ident-after-missing-comma.rs diff --git a/src/test/ui/parser/issue-68000-unicode-ident-after-missing-comma.stderr b/src/test/ui/parser/issues/issue-68000-unicode-ident-after-missing-comma.stderr similarity index 100% rename from src/test/ui/parser/issue-68000-unicode-ident-after-missing-comma.stderr rename to src/test/ui/parser/issues/issue-68000-unicode-ident-after-missing-comma.stderr diff --git a/src/test/ui/parser/issue-68629.rs b/src/test/ui/parser/issues/issue-68629.rs similarity index 100% rename from src/test/ui/parser/issue-68629.rs rename to src/test/ui/parser/issues/issue-68629.rs diff --git a/src/test/ui/parser/issue-68629.stderr b/src/test/ui/parser/issues/issue-68629.stderr similarity index 100% rename from src/test/ui/parser/issue-68629.stderr rename to src/test/ui/parser/issues/issue-68629.stderr diff --git a/src/test/ui/parser/issue-68730.rs b/src/test/ui/parser/issues/issue-68730.rs similarity index 100% rename from src/test/ui/parser/issue-68730.rs rename to src/test/ui/parser/issues/issue-68730.rs diff --git a/src/test/ui/parser/issue-68730.stderr b/src/test/ui/parser/issues/issue-68730.stderr similarity index 100% rename from src/test/ui/parser/issue-68730.stderr rename to src/test/ui/parser/issues/issue-68730.stderr diff --git a/src/test/ui/parser/issue-68788-in-trait-item-propagation.rs b/src/test/ui/parser/issues/issue-68788-in-trait-item-propagation.rs similarity index 100% rename from src/test/ui/parser/issue-68788-in-trait-item-propagation.rs rename to src/test/ui/parser/issues/issue-68788-in-trait-item-propagation.rs diff --git a/src/test/ui/parser/issue-68890-2.rs b/src/test/ui/parser/issues/issue-68890-2.rs similarity index 100% rename from src/test/ui/parser/issue-68890-2.rs rename to src/test/ui/parser/issues/issue-68890-2.rs diff --git a/src/test/ui/parser/issue-68890-2.stderr b/src/test/ui/parser/issues/issue-68890-2.stderr similarity index 100% rename from src/test/ui/parser/issue-68890-2.stderr rename to src/test/ui/parser/issues/issue-68890-2.stderr diff --git a/src/test/ui/parser/issue-68890.rs b/src/test/ui/parser/issues/issue-68890.rs similarity index 100% rename from src/test/ui/parser/issue-68890.rs rename to src/test/ui/parser/issues/issue-68890.rs diff --git a/src/test/ui/parser/issue-68890.stderr b/src/test/ui/parser/issues/issue-68890.stderr similarity index 100% rename from src/test/ui/parser/issue-68890.stderr rename to src/test/ui/parser/issues/issue-68890.stderr diff --git a/src/test/ui/parser/issue-70050-ntliteral-accepts-negated-lit.rs b/src/test/ui/parser/issues/issue-70050-ntliteral-accepts-negated-lit.rs similarity index 100% rename from src/test/ui/parser/issue-70050-ntliteral-accepts-negated-lit.rs rename to src/test/ui/parser/issues/issue-70050-ntliteral-accepts-negated-lit.rs diff --git a/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.rs b/src/test/ui/parser/issues/issue-70388-recover-dotdotdot-rest-pat.rs similarity index 100% rename from src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.rs rename to src/test/ui/parser/issues/issue-70388-recover-dotdotdot-rest-pat.rs diff --git a/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.stderr b/src/test/ui/parser/issues/issue-70388-recover-dotdotdot-rest-pat.stderr similarity index 100% rename from src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.stderr rename to src/test/ui/parser/issues/issue-70388-recover-dotdotdot-rest-pat.stderr diff --git a/src/test/ui/parser/issue-70388-without-witness.fixed b/src/test/ui/parser/issues/issue-70388-without-witness.fixed similarity index 100% rename from src/test/ui/parser/issue-70388-without-witness.fixed rename to src/test/ui/parser/issues/issue-70388-without-witness.fixed diff --git a/src/test/ui/parser/issue-70388-without-witness.rs b/src/test/ui/parser/issues/issue-70388-without-witness.rs similarity index 100% rename from src/test/ui/parser/issue-70388-without-witness.rs rename to src/test/ui/parser/issues/issue-70388-without-witness.rs diff --git a/src/test/ui/parser/issue-70388-without-witness.stderr b/src/test/ui/parser/issues/issue-70388-without-witness.stderr similarity index 100% rename from src/test/ui/parser/issue-70388-without-witness.stderr rename to src/test/ui/parser/issues/issue-70388-without-witness.stderr diff --git a/src/test/ui/parser/issue-70549-resolve-after-recovered-self-ctor.rs b/src/test/ui/parser/issues/issue-70549-resolve-after-recovered-self-ctor.rs similarity index 100% rename from src/test/ui/parser/issue-70549-resolve-after-recovered-self-ctor.rs rename to src/test/ui/parser/issues/issue-70549-resolve-after-recovered-self-ctor.rs diff --git a/src/test/ui/parser/issue-70549-resolve-after-recovered-self-ctor.stderr b/src/test/ui/parser/issues/issue-70549-resolve-after-recovered-self-ctor.stderr similarity index 100% rename from src/test/ui/parser/issue-70549-resolve-after-recovered-self-ctor.stderr rename to src/test/ui/parser/issues/issue-70549-resolve-after-recovered-self-ctor.stderr diff --git a/src/test/ui/parser/issue-70552-ascription-in-parens-after-call.rs b/src/test/ui/parser/issues/issue-70552-ascription-in-parens-after-call.rs similarity index 100% rename from src/test/ui/parser/issue-70552-ascription-in-parens-after-call.rs rename to src/test/ui/parser/issues/issue-70552-ascription-in-parens-after-call.rs diff --git a/src/test/ui/parser/issue-70552-ascription-in-parens-after-call.stderr b/src/test/ui/parser/issues/issue-70552-ascription-in-parens-after-call.stderr similarity index 100% rename from src/test/ui/parser/issue-70552-ascription-in-parens-after-call.stderr rename to src/test/ui/parser/issues/issue-70552-ascription-in-parens-after-call.stderr diff --git a/src/test/ui/parser/issue-70583-block-is-empty-1.rs b/src/test/ui/parser/issues/issue-70583-block-is-empty-1.rs similarity index 100% rename from src/test/ui/parser/issue-70583-block-is-empty-1.rs rename to src/test/ui/parser/issues/issue-70583-block-is-empty-1.rs diff --git a/src/test/ui/parser/issue-70583-block-is-empty-1.stderr b/src/test/ui/parser/issues/issue-70583-block-is-empty-1.stderr similarity index 100% rename from src/test/ui/parser/issue-70583-block-is-empty-1.stderr rename to src/test/ui/parser/issues/issue-70583-block-is-empty-1.stderr diff --git a/src/test/ui/parser/issue-70583-block-is-empty-2.rs b/src/test/ui/parser/issues/issue-70583-block-is-empty-2.rs similarity index 100% rename from src/test/ui/parser/issue-70583-block-is-empty-2.rs rename to src/test/ui/parser/issues/issue-70583-block-is-empty-2.rs diff --git a/src/test/ui/parser/issue-70583-block-is-empty-2.stderr b/src/test/ui/parser/issues/issue-70583-block-is-empty-2.stderr similarity index 100% rename from src/test/ui/parser/issue-70583-block-is-empty-2.stderr rename to src/test/ui/parser/issues/issue-70583-block-is-empty-2.stderr diff --git a/src/test/ui/parser/issue-7222.rs b/src/test/ui/parser/issues/issue-7222.rs similarity index 100% rename from src/test/ui/parser/issue-7222.rs rename to src/test/ui/parser/issues/issue-7222.rs diff --git a/src/test/ui/parser/issue-72253.rs b/src/test/ui/parser/issues/issue-72253.rs similarity index 100% rename from src/test/ui/parser/issue-72253.rs rename to src/test/ui/parser/issues/issue-72253.rs diff --git a/src/test/ui/parser/issue-72253.stderr b/src/test/ui/parser/issues/issue-72253.stderr similarity index 100% rename from src/test/ui/parser/issue-72253.stderr rename to src/test/ui/parser/issues/issue-72253.stderr diff --git a/src/test/ui/parser/issue-72373.rs b/src/test/ui/parser/issues/issue-72373.rs similarity index 100% rename from src/test/ui/parser/issue-72373.rs rename to src/test/ui/parser/issues/issue-72373.rs diff --git a/src/test/ui/parser/issue-72373.stderr b/src/test/ui/parser/issues/issue-72373.stderr similarity index 100% rename from src/test/ui/parser/issue-72373.stderr rename to src/test/ui/parser/issues/issue-72373.stderr diff --git a/src/test/ui/parser/issue-73568-lifetime-after-mut.rs b/src/test/ui/parser/issues/issue-73568-lifetime-after-mut.rs similarity index 100% rename from src/test/ui/parser/issue-73568-lifetime-after-mut.rs rename to src/test/ui/parser/issues/issue-73568-lifetime-after-mut.rs diff --git a/src/test/ui/parser/issue-73568-lifetime-after-mut.stderr b/src/test/ui/parser/issues/issue-73568-lifetime-after-mut.stderr similarity index 100% rename from src/test/ui/parser/issue-73568-lifetime-after-mut.stderr rename to src/test/ui/parser/issues/issue-73568-lifetime-after-mut.stderr diff --git a/src/test/ui/parser/issue-75599.rs b/src/test/ui/parser/issues/issue-75599.rs similarity index 100% rename from src/test/ui/parser/issue-75599.rs rename to src/test/ui/parser/issues/issue-75599.rs diff --git a/src/test/ui/parser/issue-76437-async.rs b/src/test/ui/parser/issues/issue-76437-async.rs similarity index 100% rename from src/test/ui/parser/issue-76437-async.rs rename to src/test/ui/parser/issues/issue-76437-async.rs diff --git a/src/test/ui/parser/issue-76437-async.stderr b/src/test/ui/parser/issues/issue-76437-async.stderr similarity index 100% rename from src/test/ui/parser/issue-76437-async.stderr rename to src/test/ui/parser/issues/issue-76437-async.stderr diff --git a/src/test/ui/parser/issue-76437-const-async-unsafe.rs b/src/test/ui/parser/issues/issue-76437-const-async-unsafe.rs similarity index 100% rename from src/test/ui/parser/issue-76437-const-async-unsafe.rs rename to src/test/ui/parser/issues/issue-76437-const-async-unsafe.rs diff --git a/src/test/ui/parser/issue-76437-const-async-unsafe.stderr b/src/test/ui/parser/issues/issue-76437-const-async-unsafe.stderr similarity index 100% rename from src/test/ui/parser/issue-76437-const-async-unsafe.stderr rename to src/test/ui/parser/issues/issue-76437-const-async-unsafe.stderr diff --git a/src/test/ui/parser/issue-76437-const-async.rs b/src/test/ui/parser/issues/issue-76437-const-async.rs similarity index 100% rename from src/test/ui/parser/issue-76437-const-async.rs rename to src/test/ui/parser/issues/issue-76437-const-async.rs diff --git a/src/test/ui/parser/issue-76437-const-async.stderr b/src/test/ui/parser/issues/issue-76437-const-async.stderr similarity index 100% rename from src/test/ui/parser/issue-76437-const-async.stderr rename to src/test/ui/parser/issues/issue-76437-const-async.stderr diff --git a/src/test/ui/parser/issue-76437-const.rs b/src/test/ui/parser/issues/issue-76437-const.rs similarity index 100% rename from src/test/ui/parser/issue-76437-const.rs rename to src/test/ui/parser/issues/issue-76437-const.rs diff --git a/src/test/ui/parser/issue-76437-const.stderr b/src/test/ui/parser/issues/issue-76437-const.stderr similarity index 100% rename from src/test/ui/parser/issue-76437-const.stderr rename to src/test/ui/parser/issues/issue-76437-const.stderr diff --git a/src/test/ui/parser/issue-76437-pub-crate-unsafe.rs b/src/test/ui/parser/issues/issue-76437-pub-crate-unsafe.rs similarity index 100% rename from src/test/ui/parser/issue-76437-pub-crate-unsafe.rs rename to src/test/ui/parser/issues/issue-76437-pub-crate-unsafe.rs diff --git a/src/test/ui/parser/issue-76437-pub-crate-unsafe.stderr b/src/test/ui/parser/issues/issue-76437-pub-crate-unsafe.stderr similarity index 100% rename from src/test/ui/parser/issue-76437-pub-crate-unsafe.stderr rename to src/test/ui/parser/issues/issue-76437-pub-crate-unsafe.stderr diff --git a/src/test/ui/parser/issue-76437-unsafe.rs b/src/test/ui/parser/issues/issue-76437-unsafe.rs similarity index 100% rename from src/test/ui/parser/issue-76437-unsafe.rs rename to src/test/ui/parser/issues/issue-76437-unsafe.rs diff --git a/src/test/ui/parser/issue-76437-unsafe.stderr b/src/test/ui/parser/issues/issue-76437-unsafe.stderr similarity index 100% rename from src/test/ui/parser/issue-76437-unsafe.stderr rename to src/test/ui/parser/issues/issue-76437-unsafe.stderr diff --git a/src/test/ui/parser/issue-76597.fixed b/src/test/ui/parser/issues/issue-76597.fixed similarity index 100% rename from src/test/ui/parser/issue-76597.fixed rename to src/test/ui/parser/issues/issue-76597.fixed diff --git a/src/test/ui/parser/issue-76597.rs b/src/test/ui/parser/issues/issue-76597.rs similarity index 100% rename from src/test/ui/parser/issue-76597.rs rename to src/test/ui/parser/issues/issue-76597.rs diff --git a/src/test/ui/parser/issue-76597.stderr b/src/test/ui/parser/issues/issue-76597.stderr similarity index 100% rename from src/test/ui/parser/issue-76597.stderr rename to src/test/ui/parser/issues/issue-76597.stderr diff --git a/src/test/ui/parser/issue-7970b.rs b/src/test/ui/parser/issues/issue-7970b.rs similarity index 100% rename from src/test/ui/parser/issue-7970b.rs rename to src/test/ui/parser/issues/issue-7970b.rs diff --git a/src/test/ui/parser/issue-7970b.stderr b/src/test/ui/parser/issues/issue-7970b.stderr similarity index 100% rename from src/test/ui/parser/issue-7970b.stderr rename to src/test/ui/parser/issues/issue-7970b.stderr diff --git a/src/test/ui/parser/issue-81806.rs b/src/test/ui/parser/issues/issue-81806.rs similarity index 100% rename from src/test/ui/parser/issue-81806.rs rename to src/test/ui/parser/issues/issue-81806.rs diff --git a/src/test/ui/parser/issue-81806.stderr b/src/test/ui/parser/issues/issue-81806.stderr similarity index 100% rename from src/test/ui/parser/issue-81806.stderr rename to src/test/ui/parser/issues/issue-81806.stderr diff --git a/src/test/ui/parser/issue-83639.rs b/src/test/ui/parser/issues/issue-83639.rs similarity index 100% rename from src/test/ui/parser/issue-83639.rs rename to src/test/ui/parser/issues/issue-83639.rs diff --git a/src/test/ui/parser/issue-83639.stderr b/src/test/ui/parser/issues/issue-83639.stderr similarity index 100% rename from src/test/ui/parser/issue-83639.stderr rename to src/test/ui/parser/issues/issue-83639.stderr diff --git a/src/test/ui/parser/issue-84104.rs b/src/test/ui/parser/issues/issue-84104.rs similarity index 100% rename from src/test/ui/parser/issue-84104.rs rename to src/test/ui/parser/issues/issue-84104.rs diff --git a/src/test/ui/parser/issue-84104.stderr b/src/test/ui/parser/issues/issue-84104.stderr similarity index 100% rename from src/test/ui/parser/issue-84104.stderr rename to src/test/ui/parser/issues/issue-84104.stderr diff --git a/src/test/ui/parser/issue-84117.rs b/src/test/ui/parser/issues/issue-84117.rs similarity index 100% rename from src/test/ui/parser/issue-84117.rs rename to src/test/ui/parser/issues/issue-84117.rs diff --git a/src/test/ui/parser/issue-84117.stderr b/src/test/ui/parser/issues/issue-84117.stderr similarity index 100% rename from src/test/ui/parser/issue-84117.stderr rename to src/test/ui/parser/issues/issue-84117.stderr diff --git a/src/test/ui/parser/issue-84148-1.rs b/src/test/ui/parser/issues/issue-84148-1.rs similarity index 100% rename from src/test/ui/parser/issue-84148-1.rs rename to src/test/ui/parser/issues/issue-84148-1.rs diff --git a/src/test/ui/parser/issue-84148-1.stderr b/src/test/ui/parser/issues/issue-84148-1.stderr similarity index 100% rename from src/test/ui/parser/issue-84148-1.stderr rename to src/test/ui/parser/issues/issue-84148-1.stderr diff --git a/src/test/ui/parser/issue-84148-2.rs b/src/test/ui/parser/issues/issue-84148-2.rs similarity index 100% rename from src/test/ui/parser/issue-84148-2.rs rename to src/test/ui/parser/issues/issue-84148-2.rs diff --git a/src/test/ui/parser/issue-84148-2.stderr b/src/test/ui/parser/issues/issue-84148-2.stderr similarity index 100% rename from src/test/ui/parser/issue-84148-2.stderr rename to src/test/ui/parser/issues/issue-84148-2.stderr diff --git a/src/test/ui/parser/issue-8537.rs b/src/test/ui/parser/issues/issue-8537.rs similarity index 100% rename from src/test/ui/parser/issue-8537.rs rename to src/test/ui/parser/issues/issue-8537.rs diff --git a/src/test/ui/parser/issue-8537.stderr b/src/test/ui/parser/issues/issue-8537.stderr similarity index 100% rename from src/test/ui/parser/issue-8537.stderr rename to src/test/ui/parser/issues/issue-8537.stderr diff --git a/src/test/ui/parser/issue-86895.rs b/src/test/ui/parser/issues/issue-86895.rs similarity index 100% rename from src/test/ui/parser/issue-86895.rs rename to src/test/ui/parser/issues/issue-86895.rs diff --git a/src/test/ui/parser/issue-86895.stderr b/src/test/ui/parser/issues/issue-86895.stderr similarity index 100% rename from src/test/ui/parser/issue-86895.stderr rename to src/test/ui/parser/issues/issue-86895.stderr diff --git a/src/test/ui/parser/issue-87086-colon-path-sep.rs b/src/test/ui/parser/issues/issue-87086-colon-path-sep.rs similarity index 100% rename from src/test/ui/parser/issue-87086-colon-path-sep.rs rename to src/test/ui/parser/issues/issue-87086-colon-path-sep.rs diff --git a/src/test/ui/parser/issue-87086-colon-path-sep.stderr b/src/test/ui/parser/issues/issue-87086-colon-path-sep.stderr similarity index 100% rename from src/test/ui/parser/issue-87086-colon-path-sep.stderr rename to src/test/ui/parser/issues/issue-87086-colon-path-sep.stderr diff --git a/src/test/ui/parser/issue-87197-missing-semicolon.fixed b/src/test/ui/parser/issues/issue-87197-missing-semicolon.fixed similarity index 100% rename from src/test/ui/parser/issue-87197-missing-semicolon.fixed rename to src/test/ui/parser/issues/issue-87197-missing-semicolon.fixed diff --git a/src/test/ui/parser/issue-87197-missing-semicolon.rs b/src/test/ui/parser/issues/issue-87197-missing-semicolon.rs similarity index 100% rename from src/test/ui/parser/issue-87197-missing-semicolon.rs rename to src/test/ui/parser/issues/issue-87197-missing-semicolon.rs diff --git a/src/test/ui/parser/issue-87197-missing-semicolon.stderr b/src/test/ui/parser/issues/issue-87197-missing-semicolon.stderr similarity index 100% rename from src/test/ui/parser/issue-87197-missing-semicolon.stderr rename to src/test/ui/parser/issues/issue-87197-missing-semicolon.stderr diff --git a/src/test/ui/parser/issue-87217-keyword-order/const-async-const.rs b/src/test/ui/parser/issues/issue-87217-keyword-order/const-async-const.rs similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/const-async-const.rs rename to src/test/ui/parser/issues/issue-87217-keyword-order/const-async-const.rs diff --git a/src/test/ui/parser/issue-87217-keyword-order/const-async-const.stderr b/src/test/ui/parser/issues/issue-87217-keyword-order/const-async-const.stderr similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/const-async-const.stderr rename to src/test/ui/parser/issues/issue-87217-keyword-order/const-async-const.stderr diff --git a/src/test/ui/parser/issue-87217-keyword-order/several-kw-jump.rs b/src/test/ui/parser/issues/issue-87217-keyword-order/several-kw-jump.rs similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/several-kw-jump.rs rename to src/test/ui/parser/issues/issue-87217-keyword-order/several-kw-jump.rs diff --git a/src/test/ui/parser/issue-87217-keyword-order/several-kw-jump.stderr b/src/test/ui/parser/issues/issue-87217-keyword-order/several-kw-jump.stderr similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/several-kw-jump.stderr rename to src/test/ui/parser/issues/issue-87217-keyword-order/several-kw-jump.stderr diff --git a/src/test/ui/parser/issue-87217-keyword-order/wrong-async.rs b/src/test/ui/parser/issues/issue-87217-keyword-order/wrong-async.rs similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/wrong-async.rs rename to src/test/ui/parser/issues/issue-87217-keyword-order/wrong-async.rs diff --git a/src/test/ui/parser/issue-87217-keyword-order/wrong-async.stderr b/src/test/ui/parser/issues/issue-87217-keyword-order/wrong-async.stderr similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/wrong-async.stderr rename to src/test/ui/parser/issues/issue-87217-keyword-order/wrong-async.stderr diff --git a/src/test/ui/parser/issue-87217-keyword-order/wrong-const.rs b/src/test/ui/parser/issues/issue-87217-keyword-order/wrong-const.rs similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/wrong-const.rs rename to src/test/ui/parser/issues/issue-87217-keyword-order/wrong-const.rs diff --git a/src/test/ui/parser/issue-87217-keyword-order/wrong-const.stderr b/src/test/ui/parser/issues/issue-87217-keyword-order/wrong-const.stderr similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/wrong-const.stderr rename to src/test/ui/parser/issues/issue-87217-keyword-order/wrong-const.stderr diff --git a/src/test/ui/parser/issue-87217-keyword-order/wrong-unsafe.rs b/src/test/ui/parser/issues/issue-87217-keyword-order/wrong-unsafe.rs similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/wrong-unsafe.rs rename to src/test/ui/parser/issues/issue-87217-keyword-order/wrong-unsafe.rs diff --git a/src/test/ui/parser/issue-87217-keyword-order/wrong-unsafe.stderr b/src/test/ui/parser/issues/issue-87217-keyword-order/wrong-unsafe.stderr similarity index 100% rename from src/test/ui/parser/issue-87217-keyword-order/wrong-unsafe.stderr rename to src/test/ui/parser/issues/issue-87217-keyword-order/wrong-unsafe.stderr diff --git a/src/test/ui/parser/issue-87635.rs b/src/test/ui/parser/issues/issue-87635.rs similarity index 100% rename from src/test/ui/parser/issue-87635.rs rename to src/test/ui/parser/issues/issue-87635.rs diff --git a/src/test/ui/parser/issue-87635.stderr b/src/test/ui/parser/issues/issue-87635.stderr similarity index 100% rename from src/test/ui/parser/issue-87635.stderr rename to src/test/ui/parser/issues/issue-87635.stderr diff --git a/src/test/ui/parser/issue-87812-path.rs b/src/test/ui/parser/issues/issue-87812-path.rs similarity index 100% rename from src/test/ui/parser/issue-87812-path.rs rename to src/test/ui/parser/issues/issue-87812-path.rs diff --git a/src/test/ui/parser/issue-87812-path.stderr b/src/test/ui/parser/issues/issue-87812-path.stderr similarity index 100% rename from src/test/ui/parser/issue-87812-path.stderr rename to src/test/ui/parser/issues/issue-87812-path.stderr diff --git a/src/test/ui/parser/issue-87812.rs b/src/test/ui/parser/issues/issue-87812.rs similarity index 100% rename from src/test/ui/parser/issue-87812.rs rename to src/test/ui/parser/issues/issue-87812.rs diff --git a/src/test/ui/parser/issue-87812.stderr b/src/test/ui/parser/issues/issue-87812.stderr similarity index 100% rename from src/test/ui/parser/issue-87812.stderr rename to src/test/ui/parser/issues/issue-87812.stderr diff --git a/src/test/ui/parser/issue-88276-unary-plus.fixed b/src/test/ui/parser/issues/issue-88276-unary-plus.fixed similarity index 100% rename from src/test/ui/parser/issue-88276-unary-plus.fixed rename to src/test/ui/parser/issues/issue-88276-unary-plus.fixed diff --git a/src/test/ui/parser/issue-88276-unary-plus.rs b/src/test/ui/parser/issues/issue-88276-unary-plus.rs similarity index 100% rename from src/test/ui/parser/issue-88276-unary-plus.rs rename to src/test/ui/parser/issues/issue-88276-unary-plus.rs diff --git a/src/test/ui/parser/issue-88276-unary-plus.stderr b/src/test/ui/parser/issues/issue-88276-unary-plus.stderr similarity index 100% rename from src/test/ui/parser/issue-88276-unary-plus.stderr rename to src/test/ui/parser/issues/issue-88276-unary-plus.stderr diff --git a/src/test/ui/parser/issue-88583-union-as-ident.rs b/src/test/ui/parser/issues/issue-88583-union-as-ident.rs similarity index 100% rename from src/test/ui/parser/issue-88583-union-as-ident.rs rename to src/test/ui/parser/issues/issue-88583-union-as-ident.rs diff --git a/src/test/ui/parser/issue-88770.rs b/src/test/ui/parser/issues/issue-88770.rs similarity index 100% rename from src/test/ui/parser/issue-88770.rs rename to src/test/ui/parser/issues/issue-88770.rs diff --git a/src/test/ui/parser/issue-88770.stderr b/src/test/ui/parser/issues/issue-88770.stderr similarity index 100% rename from src/test/ui/parser/issue-88770.stderr rename to src/test/ui/parser/issues/issue-88770.stderr diff --git a/src/test/ui/parser/issue-88818.rs b/src/test/ui/parser/issues/issue-88818.rs similarity index 100% rename from src/test/ui/parser/issue-88818.rs rename to src/test/ui/parser/issues/issue-88818.rs diff --git a/src/test/ui/parser/issue-88818.stderr b/src/test/ui/parser/issues/issue-88818.stderr similarity index 100% rename from src/test/ui/parser/issue-88818.stderr rename to src/test/ui/parser/issues/issue-88818.stderr diff --git a/src/test/ui/parser/issue-89388.rs b/src/test/ui/parser/issues/issue-89388.rs similarity index 100% rename from src/test/ui/parser/issue-89388.rs rename to src/test/ui/parser/issues/issue-89388.rs diff --git a/src/test/ui/parser/issue-89388.stderr b/src/test/ui/parser/issues/issue-89388.stderr similarity index 100% rename from src/test/ui/parser/issue-89388.stderr rename to src/test/ui/parser/issues/issue-89388.stderr diff --git a/src/test/ui/parser/issue-89396.fixed b/src/test/ui/parser/issues/issue-89396.fixed similarity index 100% rename from src/test/ui/parser/issue-89396.fixed rename to src/test/ui/parser/issues/issue-89396.fixed diff --git a/src/test/ui/parser/issue-89396.rs b/src/test/ui/parser/issues/issue-89396.rs similarity index 100% rename from src/test/ui/parser/issue-89396.rs rename to src/test/ui/parser/issues/issue-89396.rs diff --git a/src/test/ui/parser/issue-89396.stderr b/src/test/ui/parser/issues/issue-89396.stderr similarity index 100% rename from src/test/ui/parser/issue-89396.stderr rename to src/test/ui/parser/issues/issue-89396.stderr diff --git a/src/test/ui/parser/issue-89574.rs b/src/test/ui/parser/issues/issue-89574.rs similarity index 100% rename from src/test/ui/parser/issue-89574.rs rename to src/test/ui/parser/issues/issue-89574.rs diff --git a/src/test/ui/parser/issue-89574.stderr b/src/test/ui/parser/issues/issue-89574.stderr similarity index 100% rename from src/test/ui/parser/issue-89574.stderr rename to src/test/ui/parser/issues/issue-89574.stderr diff --git a/src/test/ui/parser/issue-89971-outer-attr-following-inner-attr-ice.rs b/src/test/ui/parser/issues/issue-89971-outer-attr-following-inner-attr-ice.rs similarity index 100% rename from src/test/ui/parser/issue-89971-outer-attr-following-inner-attr-ice.rs rename to src/test/ui/parser/issues/issue-89971-outer-attr-following-inner-attr-ice.rs diff --git a/src/test/ui/parser/issue-89971-outer-attr-following-inner-attr-ice.stderr b/src/test/ui/parser/issues/issue-89971-outer-attr-following-inner-attr-ice.stderr similarity index 100% rename from src/test/ui/parser/issue-89971-outer-attr-following-inner-attr-ice.stderr rename to src/test/ui/parser/issues/issue-89971-outer-attr-following-inner-attr-ice.stderr diff --git a/src/test/ui/parser/issue-90993.rs b/src/test/ui/parser/issues/issue-90993.rs similarity index 100% rename from src/test/ui/parser/issue-90993.rs rename to src/test/ui/parser/issues/issue-90993.rs diff --git a/src/test/ui/parser/issue-90993.stderr b/src/test/ui/parser/issues/issue-90993.stderr similarity index 100% rename from src/test/ui/parser/issue-90993.stderr rename to src/test/ui/parser/issues/issue-90993.stderr From 5f6059d9a2433042ffeeec1eb42c94c5f1e75135 Mon Sep 17 00:00:00 2001 From: threadexception Date: Mon, 15 Nov 2021 17:46:44 +0100 Subject: [PATCH 5/8] Fix float ICE Co-authored-by: Esteban Kuber --- compiler/rustc_parse/src/parser/expr.rs | 2 ++ src/test/ui/parser/issue-90728.rs | 6 ++++++ src/test/ui/parser/issue-90728.stderr | 20 ++++++++++++++++++++ src/tools/tidy/src/ui_tests.rs | 2 +- 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/test/ui/parser/issue-90728.rs create mode 100644 src/test/ui/parser/issue-90728.stderr diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 3d29d30502109..0c8c45410bd0e 100644 --- a/compiler/rustc_parse/src/parser/expr.rs +++ b/compiler/rustc_parse/src/parser/expr.rs @@ -1032,6 +1032,8 @@ impl<'a> Parser<'a> { [IdentLike(_), Punct('+' | '-')] | // 1e+2 | 1e-2 [IdentLike(_), Punct('+' | '-'), IdentLike(_)] | + // 1.2e+ | 1.2e- + [IdentLike(_), Punct('.'), IdentLike(_), Punct('+' | '-')] | // 1.2e+3 | 1.2e-3 [IdentLike(_), Punct('.'), IdentLike(_), Punct('+' | '-'), IdentLike(_)] => { // See the FIXME about `TokenCursor` above. diff --git a/src/test/ui/parser/issue-90728.rs b/src/test/ui/parser/issue-90728.rs new file mode 100644 index 0000000000000..d6a898361ccaf --- /dev/null +++ b/src/test/ui/parser/issue-90728.rs @@ -0,0 +1,6 @@ +fn main() { + a.5.2E+ + //~^ ERROR: unexpected token: `5.2E+` + //~| ERROR: expected one of `.`, `;`, `?`, `}`, or an operator, found `5.2E+` + //~| ERROR: expected at least one digit in exponent +} diff --git a/src/test/ui/parser/issue-90728.stderr b/src/test/ui/parser/issue-90728.stderr new file mode 100644 index 0000000000000..b55c460306688 --- /dev/null +++ b/src/test/ui/parser/issue-90728.stderr @@ -0,0 +1,20 @@ +error: expected at least one digit in exponent + --> $DIR/issue-90728.rs:2:7 + | +LL | a.5.2E+ + | ^^^^^ + +error: unexpected token: `5.2E+` + --> $DIR/issue-90728.rs:2:7 + | +LL | a.5.2E+ + | ^^^^^ + +error: expected one of `.`, `;`, `?`, `}`, or an operator, found `5.2E+` + --> $DIR/issue-90728.rs:2:7 + | +LL | a.5.2E+ + | ^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator + +error: aborting due to 3 previous errors + diff --git a/src/tools/tidy/src/ui_tests.rs b/src/tools/tidy/src/ui_tests.rs index 248d4f1583f8a..7fae9bf0f69b3 100644 --- a/src/tools/tidy/src/ui_tests.rs +++ b/src/tools/tidy/src/ui_tests.rs @@ -9,7 +9,7 @@ const ENTRY_LIMIT: usize = 1000; // FIXME: The following limits should be reduced eventually. const ROOT_ENTRY_LIMIT: usize = 983; const ISSUES_ENTRY_LIMIT: usize = 2310; -const PARSER_LIMIT: usize = 1010; +const PARSER_LIMIT: usize = 1012; fn check_entries(path: &Path, bad: &mut bool) { let dirs = walkdir::WalkDir::new(&path.join("test/ui")) From 70d418c315f663042636b3b63f4bbe003b4a22d8 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 20 Nov 2021 12:33:04 -0500 Subject: [PATCH 6/8] Revert "require full validity when determining the discriminant of a value" This reverts commit 0a2b7d71d96a22126cce57f0dab5890d060f2259, reversing changes made to 47c1bd1bcc50b25d133f8be3d49825491c1df249. This caused several unforeseen problems: - https://github.com/rust-lang/rust/issues/91029 - https://github.com/rust-lang/rust/pull/89764#issuecomment-973588007 --- compiler/rustc_const_eval/src/interpret/intrinsics.rs | 6 ------ compiler/rustc_const_eval/src/interpret/step.rs | 6 ------ 2 files changed, 12 deletions(-) diff --git a/compiler/rustc_const_eval/src/interpret/intrinsics.rs b/compiler/rustc_const_eval/src/interpret/intrinsics.rs index 9bbb42eb01961..44da27a43db0a 100644 --- a/compiler/rustc_const_eval/src/interpret/intrinsics.rs +++ b/compiler/rustc_const_eval/src/interpret/intrinsics.rs @@ -265,12 +265,6 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> { } sym::discriminant_value => { let place = self.deref_operand(&args[0])?; - if M::enforce_validity(self) { - // This is 'using' the value, so make sure the validity invariant is satisfied. - // (Also see https://github.com/rust-lang/rust/pull/89764.) - self.validate_operand(&place.into())?; - } - let discr_val = self.read_discriminant(&place.into())?.0; self.write_scalar(discr_val, dest)?; } diff --git a/compiler/rustc_const_eval/src/interpret/step.rs b/compiler/rustc_const_eval/src/interpret/step.rs index 2759a7d9d268f..e6037d561dedc 100644 --- a/compiler/rustc_const_eval/src/interpret/step.rs +++ b/compiler/rustc_const_eval/src/interpret/step.rs @@ -304,12 +304,6 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> { Discriminant(place) => { let op = self.eval_place_to_op(place, None)?; - if M::enforce_validity(self) { - // This is 'using' the value, so make sure the validity invariant is satisfied. - // (Also see https://github.com/rust-lang/rust/pull/89764.) - self.validate_operand(&op)?; - } - let discr_val = self.read_discriminant(&op)?.0; self.write_scalar(discr_val, &dest)?; } From 33c443dd9d50c2a8d95609c2250708ea93cbc7f2 Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Wed, 17 Nov 2021 21:38:04 -0800 Subject: [PATCH 7/8] Suggest await on cases involving infer --- .../src/infer/error_reporting/mod.rs | 34 +++++++++++++++-- .../ui/async-await/suggest-missing-await.rs | 17 +++++++++ .../async-await/suggest-missing-await.stderr | 38 ++++++++++++++++++- 3 files changed, 85 insertions(+), 4 deletions(-) diff --git a/compiler/rustc_infer/src/infer/error_reporting/mod.rs b/compiler/rustc_infer/src/infer/error_reporting/mod.rs index c25ec1356e230..3c2f990008062 100644 --- a/compiler/rustc_infer/src/infer/error_reporting/mod.rs +++ b/compiler/rustc_infer/src/infer/error_reporting/mod.rs @@ -310,6 +310,34 @@ pub fn unexpected_hidden_region_diagnostic( err } +/// Structurally compares two types, modulo any inference variables. +/// +/// Returns `true` if two types are equal, or if one type is an inference variable compatible +/// with the other type. A TyVar inference type is compatible with any type, and an IntVar or +/// FloatVar inference type are compatible with themselves or their concrete types (Int and +/// Float types, respectively). When comparing two ADTs, these rules apply recursively. +pub fn same_type_modulo_infer(a: Ty<'tcx>, b: Ty<'ctx>) -> bool { + match (&a.kind(), &b.kind()) { + (&ty::Adt(did_a, substs_a), &ty::Adt(did_b, substs_b)) => { + if did_a != did_b { + return false; + } + + substs_a.types().zip(substs_b.types()).all(|(a, b)| same_type_modulo_infer(a, b)) + } + (&ty::Int(_), &ty::Infer(ty::InferTy::IntVar(_))) + | (&ty::Infer(ty::InferTy::IntVar(_)), &ty::Int(_) | &ty::Infer(ty::InferTy::IntVar(_))) + | (&ty::Float(_), &ty::Infer(ty::InferTy::FloatVar(_))) + | ( + &ty::Infer(ty::InferTy::FloatVar(_)), + &ty::Float(_) | &ty::Infer(ty::InferTy::FloatVar(_)), + ) + | (&ty::Infer(ty::InferTy::TyVar(_)), _) + | (_, &ty::Infer(ty::InferTy::TyVar(_))) => true, + _ => a == b, + } +} + impl<'a, 'tcx> InferCtxt<'a, 'tcx> { pub fn report_region_errors(&self, errors: &Vec>) { debug!("report_region_errors(): {} errors to start", errors.len()); @@ -1761,7 +1789,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> { self.get_impl_future_output_ty(exp_found.expected), self.get_impl_future_output_ty(exp_found.found), ) { - (Some(exp), Some(found)) if ty::TyS::same_type(exp, found) => match &cause.code { + (Some(exp), Some(found)) if same_type_modulo_infer(exp, found) => match &cause.code { ObligationCauseCode::IfExpression(box IfExpressionCause { then, .. }) => { diag.multipart_suggestion( "consider `await`ing on both `Future`s", @@ -1793,7 +1821,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> { diag.help("consider `await`ing on both `Future`s"); } }, - (_, Some(ty)) if ty::TyS::same_type(exp_found.expected, ty) => { + (_, Some(ty)) if same_type_modulo_infer(exp_found.expected, ty) => { diag.span_suggestion_verbose( exp_span.shrink_to_hi(), "consider `await`ing on the `Future`", @@ -1801,7 +1829,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> { Applicability::MaybeIncorrect, ); } - (Some(ty), _) if ty::TyS::same_type(ty, exp_found.found) => match cause.code { + (Some(ty), _) if same_type_modulo_infer(ty, exp_found.found) => match cause.code { ObligationCauseCode::Pattern { span: Some(span), .. } | ObligationCauseCode::IfExpression(box IfExpressionCause { then: span, .. }) => { diag.span_suggestion_verbose( diff --git a/src/test/ui/async-await/suggest-missing-await.rs b/src/test/ui/async-await/suggest-missing-await.rs index df74df79d9f47..c7c5b51e7334b 100644 --- a/src/test/ui/async-await/suggest-missing-await.rs +++ b/src/test/ui/async-await/suggest-missing-await.rs @@ -54,4 +54,21 @@ async fn suggest_await_on_match_expr() { }; } +async fn dummy_result() -> Result<(), ()> { + Ok(()) +} + +#[allow(unused)] +async fn suggest_await_in_generic_pattern() { + match dummy_result() { + //~^ HELP consider `await`ing on the `Future` + //~| HELP consider `await`ing on the `Future` + //~| SUGGESTION .await + Ok(_) => {} + //~^ ERROR mismatched types [E0308] + Err(_) => {} + //~^ ERROR mismatched types [E0308] + } +} + fn main() {} diff --git a/src/test/ui/async-await/suggest-missing-await.stderr b/src/test/ui/async-await/suggest-missing-await.stderr index bea50b3bfc036..5757f39af18cd 100644 --- a/src/test/ui/async-await/suggest-missing-await.stderr +++ b/src/test/ui/async-await/suggest-missing-await.stderr @@ -106,6 +106,42 @@ help: consider `await`ing on the `Future` LL | let _x = match dummy().await { | ++++++ -error: aborting due to 5 previous errors +error[E0308]: mismatched types + --> $DIR/suggest-missing-await.rs:67:9 + | +LL | Ok(_) => {} + | ^^^^^ expected opaque type, found enum `Result` + | +note: while checking the return type of the `async fn` + --> $DIR/suggest-missing-await.rs:57:28 + | +LL | async fn dummy_result() -> Result<(), ()> { + | ^^^^^^^^^^^^^^ checked the `Output` of this `async fn`, expected opaque type + = note: expected opaque type `impl Future` + found enum `Result<_, _>` +help: consider `await`ing on the `Future` + | +LL | match dummy_result().await { + | ++++++ + +error[E0308]: mismatched types + --> $DIR/suggest-missing-await.rs:69:9 + | +LL | Err(_) => {} + | ^^^^^^ expected opaque type, found enum `Result` + | +note: while checking the return type of the `async fn` + --> $DIR/suggest-missing-await.rs:57:28 + | +LL | async fn dummy_result() -> Result<(), ()> { + | ^^^^^^^^^^^^^^ checked the `Output` of this `async fn`, expected opaque type + = note: expected opaque type `impl Future` + found enum `Result<_, _>` +help: consider `await`ing on the `Future` + | +LL | match dummy_result().await { + | ++++++ + +error: aborting due to 7 previous errors For more information about this error, try `rustc --explain E0308`. From 1f625b739a1178e00ac36819738289b5dbc081ea Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Sat, 20 Nov 2021 10:00:14 -0800 Subject: [PATCH 8/8] Re-bless test outputs --- src/test/ui/async-await/suggest-missing-await.stderr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/ui/async-await/suggest-missing-await.stderr b/src/test/ui/async-await/suggest-missing-await.stderr index 5757f39af18cd..3cca9616a358a 100644 --- a/src/test/ui/async-await/suggest-missing-await.stderr +++ b/src/test/ui/async-await/suggest-missing-await.stderr @@ -117,7 +117,7 @@ note: while checking the return type of the `async fn` | LL | async fn dummy_result() -> Result<(), ()> { | ^^^^^^^^^^^^^^ checked the `Output` of this `async fn`, expected opaque type - = note: expected opaque type `impl Future` + = note: expected opaque type `impl Future>` found enum `Result<_, _>` help: consider `await`ing on the `Future` | @@ -135,7 +135,7 @@ note: while checking the return type of the `async fn` | LL | async fn dummy_result() -> Result<(), ()> { | ^^^^^^^^^^^^^^ checked the `Output` of this `async fn`, expected opaque type - = note: expected opaque type `impl Future` + = note: expected opaque type `impl Future>` found enum `Result<_, _>` help: consider `await`ing on the `Future` |