Enum rustc_parse::parser::ty::RecoverReturnSign
source · pub(super) enum RecoverReturnSign {
Yes,
OnlyFatArrow,
No,
}
Expand description
Signals whether parsing a type should recover ->
.
More specifically, when parsing a function like:
fn foo() => u8 { 0 }
fn bar(): u8 { 0 }
The compiler will try to recover interpreting foo() => u8
as foo() -> u8
when calling
parse_ty
with anything except RecoverReturnSign::No
, and it will try to recover bar(): u8
as bar() -> u8
when passing RecoverReturnSign::Yes
to parse_ty
Variants§
Implementations§
source§impl RecoverReturnSign
impl RecoverReturnSign
sourcefn can_recover(self, token: &TokenKind) -> bool
fn can_recover(self, token: &TokenKind) -> bool
RecoverReturnSign::Yes allows for recovering fn foo() => u8
and fn foo(): u8
,
RecoverReturnSign::OnlyFatArrow allows for recovering only fn foo() => u8
(recovering
colons can cause problems when parsing where clauses), and
RecoverReturnSign::No doesn’t allow for any recovery of the return type arrow
Trait Implementations§
source§impl Clone for RecoverReturnSign
impl Clone for RecoverReturnSign
source§fn clone(&self) -> RecoverReturnSign
fn clone(&self) -> RecoverReturnSign
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq for RecoverReturnSign
impl PartialEq for RecoverReturnSign
source§fn eq(&self, other: &RecoverReturnSign) -> bool
fn eq(&self, other: &RecoverReturnSign) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for RecoverReturnSign
impl StructuralPartialEq for RecoverReturnSign
Auto Trait Implementations§
impl DynSend for RecoverReturnSign
impl DynSync for RecoverReturnSign
impl Freeze for RecoverReturnSign
impl RefUnwindSafe for RecoverReturnSign
impl Send for RecoverReturnSign
impl Sync for RecoverReturnSign
impl Unpin for RecoverReturnSign
impl UnwindSafe for RecoverReturnSign
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'a mut [T]
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
Yes
: 0 bytesOnlyFatArrow
: 0 bytesNo
: 0 bytes