pub enum TypePrecedence {
Lowest,
Conditional,
Union,
Intersection,
Postfix,
Callable,
}Expand description
Type parsing precedence levels.
Lower ordinal values = lower precedence = binds more loosely. Higher ordinal values = higher precedence = binds more tightly.
For example, in Closure(): int|string:
- With
Lowestprecedence: parses asUnion(Closure(): int, string)(correct PHPStan/Psalm behavior) - Callable return types use
Callableprecedence, which stops before|,&, andis
Variants§
Lowest
Lowest precedence - parses everything including unions, intersections, conditionals
Conditional
Conditional types: T is U ? V : W
Union
Union types: T|U
Intersection
Intersection types: T&U
Postfix
Postfix operations: T[], T[K]
Callable
Callable return type context - stops before |, &, is
Trait Implementations§
Source§impl Clone for TypePrecedence
impl Clone for TypePrecedence
Source§fn clone(&self) -> TypePrecedence
fn clone(&self) -> TypePrecedence
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TypePrecedence
impl Debug for TypePrecedence
Source§impl<'de> Deserialize<'de> for TypePrecedence
impl<'de> Deserialize<'de> for TypePrecedence
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Hash for TypePrecedence
impl Hash for TypePrecedence
Source§impl Ord for TypePrecedence
impl Ord for TypePrecedence
Source§fn cmp(&self, other: &TypePrecedence) -> Ordering
fn cmp(&self, other: &TypePrecedence) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for TypePrecedence
impl PartialEq for TypePrecedence
Source§impl PartialOrd for TypePrecedence
impl PartialOrd for TypePrecedence
Source§impl Serialize for TypePrecedence
impl Serialize for TypePrecedence
impl Copy for TypePrecedence
impl Eq for TypePrecedence
impl StructuralPartialEq for TypePrecedence
Auto Trait Implementations§
impl Freeze for TypePrecedence
impl RefUnwindSafe for TypePrecedence
impl Send for TypePrecedence
impl Sync for TypePrecedence
impl Unpin for TypePrecedence
impl UnwindSafe for TypePrecedence
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 more