[][src]Function gluon_base::resolve::canonical_alias

pub fn canonical_alias<'t, F, T>(
    env: &dyn TypeEnv<Type = T>,
    interner: &mut impl TypeContext<Symbol, T>,
    typ: &'t T,
    canonical: F
) -> Cow<'t, T> where
    F: FnMut(&AliasRef<Symbol, T>) -> bool,
    T: TypeExt<Id = Symbol, SpannedId = Symbol> + Clone + Display,
    T::Types: Clone + Default + Extend<T> + FromIterator<T>,
    T::Generics: Clone + FromIterator<Generic<Symbol>>,
    T::Fields: Clone

Resolves aliases until canonical returns true for an alias in which case it returns the type that directly contains that alias