pub struct TypeGraph { /* private fields */ }Implementations§
Source§impl TypeGraph
impl TypeGraph
pub fn with_cast_order(cast_order: TypeCastOrder) -> Self
pub fn instantiate_principal(&mut self, binding: &Binding) -> PrincipalInstance
pub fn collect_runtime_bounds( &mut self, template: &Type, bounds: &RuntimeBounds, ) -> MonomorphizeResult<()>
pub fn collect_runtime_lower( &mut self, template: &Type, lower: &RuntimeType, ) -> MonomorphizeResult<()>
pub fn collect_runtime_upper( &mut self, template: &Type, upper: &RuntimeType, ) -> MonomorphizeResult<()>
pub fn fresh_hole(&mut self, prefix: &str) -> Type
pub fn constrain_subtype( &mut self, lower: Type, upper: Type, ) -> MonomorphizeResult<()>
pub fn default_unbound_lower( &mut self, vars: BTreeSet<TypeVar>, lower: Type, ) -> MonomorphizeResult<()>
pub fn solve(self) -> GraphSolution
pub fn slot(&self, var: &TypeVar) -> Option<&TypeVarBounds>
Trait Implementations§
impl Eq for TypeGraph
impl StructuralPartialEq for TypeGraph
Auto Trait Implementations§
impl Freeze for TypeGraph
impl RefUnwindSafe for TypeGraph
impl Send for TypeGraph
impl Sync for TypeGraph
impl Unpin for TypeGraph
impl UnsafeUnpin for TypeGraph
impl UnwindSafe for TypeGraph
Blanket Implementations§
Source§impl<T> Back for Twhere
T: Clone,
impl<T> Back for Twhere
T: Clone,
type Checkpoint = T
fn checkpoint(&mut self) -> <T as Back>::Checkpoint
fn rollback(&mut self, checkpoint: <T as Back>::Checkpoint)
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<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§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<It> ExpectedItem<It> for Itwhere
It: PartialEq,
impl<It> ExpectedItem<It> for Itwhere
It: PartialEq,
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