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<RecoverReturnSign> for RecoverReturnSign
impl PartialEq<RecoverReturnSign> 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 RefUnwindSafe for RecoverReturnSign
impl Send for RecoverReturnSign
impl Sync for RecoverReturnSign
impl Unpin for RecoverReturnSign
impl UnwindSafe for RecoverReturnSign
Blanket Implementations§
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
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