pub struct TypeId(/* private fields */);
Implementations§
source§impl TypeId
impl TypeId
pub fn missing(db: &dyn SemanticGroup, diag_added: DiagnosticAdded) -> Self
pub fn format(&self, db: &dyn SemanticGroup) -> String
sourcepub fn check_not_missing(&self, db: &dyn SemanticGroup) -> Maybe<()>
pub fn check_not_missing(&self, db: &dyn SemanticGroup) -> Maybe<()>
Returns Maybe::Err if the type is TypeLongId::Missing.
sourcepub fn is_missing(&self, db: &dyn SemanticGroup) -> bool
pub fn is_missing(&self, db: &dyn SemanticGroup) -> bool
Returns true
if the type is TypeLongId::Missing.
sourcepub fn is_unit(&self, db: &dyn SemanticGroup) -> bool
pub fn is_unit(&self, db: &dyn SemanticGroup) -> bool
Returns true
if the type is ()
.
sourcepub fn head(&self, db: &dyn SemanticGroup) -> Option<TypeHead>
pub fn head(&self, db: &dyn SemanticGroup) -> Option<TypeHead>
Returns the TypeHead for a type if available.
sourcepub fn is_fully_concrete(&self, db: &dyn SemanticGroup) -> bool
pub fn is_fully_concrete(&self, db: &dyn SemanticGroup) -> bool
Returns true if the type does not depend on any generics.
sourcepub fn is_var_free(&self, db: &dyn SemanticGroup) -> bool
pub fn is_var_free(&self, db: &dyn SemanticGroup) -> bool
Returns true if the type does not contain any inference variables.
sourcepub fn is_phantom(&self, db: &dyn SemanticGroup) -> bool
pub fn is_phantom(&self, db: &dyn SemanticGroup) -> bool
Returns whether the type is phantom.
Type is considered phantom if it has the #[phantom]
attribute, or is a tuple or fixed
sized array containing it.
Trait Implementations§
source§impl<T: ?Sized + Upcast<dyn SemanticGroup + 'static>> DebugWithDb<T> for TypeId
impl<T: ?Sized + Upcast<dyn SemanticGroup + 'static>> DebugWithDb<T> for TypeId
source§impl FromIterator<TypeId> for ImplicitPrecedence
impl FromIterator<TypeId> for ImplicitPrecedence
source§impl<'a> Intern<'a, dyn SemanticGroup + 'a, TypeId> for TypeLongId
impl<'a> Intern<'a, dyn SemanticGroup + 'a, TypeId> for TypeLongId
source§impl InternKey for TypeId
impl InternKey for TypeId
source§fn from_intern_id(salsa_id: InternId) -> Self
fn from_intern_id(salsa_id: InternId) -> Self
Create an instance of the intern-key from a
u32
value.source§fn as_intern_id(&self) -> InternId
fn as_intern_id(&self) -> InternId
Extract the
u32
with which the intern-key was created.source§impl<'a> LookupIntern<'a, dyn SemanticGroup + 'a, TypeLongId> for TypeId
impl<'a> LookupIntern<'a, dyn SemanticGroup + 'a, TypeLongId> for TypeId
fn lookup_intern( &self, db: &(impl Upcast<dyn SemanticGroup + 'a> + ?Sized), ) -> TypeLongId
source§impl<'a, Error, TRewriter: HasDb<&'a dyn SemanticGroup> + SemanticRewriter<TypeLongId, Error>> SemanticObject<TRewriter, Error> for TypeId
impl<'a, Error, TRewriter: HasDb<&'a dyn SemanticGroup> + SemanticRewriter<TypeLongId, Error>> SemanticObject<TRewriter, Error> for TypeId
fn default_rewrite( &mut self, rewriter: &mut TRewriter, ) -> Result<RewriteResult, Error>
source§impl SemanticRewriter<TypeId, DiagnosticAdded> for SubstitutionRewriter<'_>
impl SemanticRewriter<TypeId, DiagnosticAdded> for SubstitutionRewriter<'_>
fn internal_rewrite(&mut self, value: &mut TypeId) -> Maybe<RewriteResult>
fn rewrite(&mut self, value: T) -> Result<T, Error>
impl Copy for TypeId
impl Eq for TypeId
impl StructuralPartialEq for TypeId
Auto Trait Implementations§
impl Freeze for TypeId
impl RefUnwindSafe for TypeId
impl Send for TypeId
impl Sync for TypeId
impl Unpin for TypeId
impl UnwindSafe for TypeId
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