Enum cairo_lang_semantic::items::imp::ImplId
source · pub enum ImplId {
Concrete(ConcreteImplId),
GenericParameter(GenericParamId),
ImplVar(ImplVarId),
}
Expand description
Represents a “callee” impl that can be referred to in the code. Traits should be resolved to this.
Variants§
Implementations§
source§impl ImplId
impl ImplId
sourcepub fn head(&self, db: &dyn SemanticGroup) -> Option<ImplHead>
pub fn head(&self, db: &dyn SemanticGroup) -> Option<ImplHead>
Returns the ImplHead of an impl if available.
pub fn name(&self, db: &dyn SemanticGroup) -> SmolStr
pub fn format(&self, db: &dyn SemanticGroup) -> String
pub fn concrete_trait(&self, db: &dyn SemanticGroup) -> Maybe<ConcreteTraitId>
sourcepub fn is_fully_concrete(&self, db: &dyn SemanticGroup) -> bool
pub fn is_fully_concrete(&self, db: &dyn SemanticGroup) -> bool
Returns true if the impl
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 impl
does not depend on impl or type variables.
Trait Implementations§
source§impl DebugWithDb<dyn SemanticGroup> for ImplId
impl DebugWithDb<dyn SemanticGroup> for ImplId
source§impl PartialEq for ImplId
impl PartialEq for ImplId
source§impl<T: SemanticRewriter<ConcreteImplId, Error> + SemanticRewriter<GenericParamId, Error> + SemanticRewriter<ImplVarId, Error>, Error> SemanticObject<T, Error> for ImplId
impl<T: SemanticRewriter<ConcreteImplId, Error> + SemanticRewriter<GenericParamId, Error> + SemanticRewriter<ImplVarId, Error>, Error> SemanticObject<T, Error> for ImplId
fn default_rewrite(&mut self, rewriter: &mut T) -> Result<RewriteResult, Error>
source§impl<'a> SemanticRewriter<ImplId, DiagnosticAdded> for SubstitutionRewriter<'a>
impl<'a> SemanticRewriter<ImplId, DiagnosticAdded> for SubstitutionRewriter<'a>
fn internal_rewrite(&mut self, value: &mut ImplId) -> Maybe<RewriteResult>
fn rewrite(&mut self, value: T) -> Result<T, Error>
impl Copy for ImplId
impl Eq for ImplId
impl StructuralPartialEq for ImplId
Auto Trait Implementations§
impl Freeze for ImplId
impl RefUnwindSafe for ImplId
impl Send for ImplId
impl Sync for ImplId
impl Unpin for ImplId
impl UnwindSafe for ImplId
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<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<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> 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