Enum erg_compiler::ty::free::Constraint
source · pub enum Constraint {
Sandwiched {
sub: Type,
sup: Type,
},
TypeOf(Type),
Uninited,
}
Expand description
NOTE: you should use Free::get_type/get_subsup
instead of deconstructing the constraint by match
.
Constraints may contain cycles, in which case using match
to get the contents will cause memory pollutions.
So this does not implement structural_eq
.
Variants§
Implementations§
source§impl Constraint
impl Constraint
sourcepub const fn new_sandwiched(sub: Type, sup: Type) -> Self
pub const fn new_sandwiched(sub: Type, sup: Type) -> Self
:> Sub, <: Sup
pub fn named_fmt( &self, f: &mut Formatter<'_>, name: &str, limit: usize ) -> Result
pub fn new_type_of(t: Type) -> Self
pub const fn new_subtype_of(sup: Type) -> Self
pub const fn new_supertype_of(sub: Type) -> Self
pub const fn is_uninited(&self) -> bool
pub fn lift(&self)
pub fn get_type(&self) -> Option<&Type>
pub fn get_sub_sup(&self) -> Option<(&Type, &Type)>
pub fn get_super_mut(&mut self) -> Option<&mut Type>
Trait Implementations§
source§impl Clone for Constraint
impl Clone for Constraint
source§fn clone(&self) -> Constraint
fn clone(&self) -> Constraint
Returns a copy 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 more