pub struct Variable {
pub droppable: Result<ImplId, InferenceError>,
pub copyable: Result<ImplId, InferenceError>,
pub destruct_impl: Result<ImplId, InferenceError>,
pub panic_destruct_impl: Result<ImplId, InferenceError>,
pub ty: TypeId,
pub location: LocationId,
}
Expand description
Lowered variable representation.
Fields§
§droppable: Result<ImplId, InferenceError>
Can the type be (trivially) dropped.
copyable: Result<ImplId, InferenceError>
Can the type be (trivially) copied.
destruct_impl: Result<ImplId, InferenceError>
A Destruct impl for the type, if found.
panic_destruct_impl: Result<ImplId, InferenceError>
A PanicDestruct impl for the type, if found.
ty: TypeId
Semantic type of the variable.
location: LocationId
Location of the variable.
Implementations§
source§impl Variable
impl Variable
pub fn new( db: &dyn LoweringGroup, ctx: ImplLookupContext, ty: TypeId, location: LocationId, ) -> Self
Trait Implementations§
impl Eq for Variable
impl StructuralPartialEq for Variable
Auto Trait Implementations§
impl Freeze for Variable
impl RefUnwindSafe for Variable
impl Send for Variable
impl Sync for Variable
impl Unpin for Variable
impl UnwindSafe for Variable
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.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