Struct gluon_base::instantiate::AliasInstantiator [] [src]

pub struct AliasInstantiator<'a> {
    pub inst: &'a Instantiator,
    pub env: &'a TypeEnv,
}

Fields

inst: &'a Instantiator env: &'a TypeEnv

Methods

impl<'a> AliasInstantiator<'a>
[src]

fn new(inst: &'a Instantiator, env: &'a TypeEnv) -> AliasInstantiator<'a>

fn remove_aliases(&self, typ: TcType) -> TcType

Removes type aliases from typ until it is an actual type

fn remove_aliases_cow<'t>(&self, typ: &'t TcType) -> Cow<'t, TcType>

fn remove_alias(&self, typ: TcType) -> TcType

fn maybe_remove_alias(&self, typ: &TcType) -> Result<Option<TcType>, ()>

fn type_of_alias(&self, alias: &AliasData<SymbolTcType>, arguments: &[TcType]) -> Result<Option<TcType>, ()>