[][src]Trait lark_ty::TypeFamily

pub trait TypeFamily: Copy + Clone + Debug + DebugWith + Eq + Hash + 'static {
    type InternTables: AsRef<Self::InternTables>;
    type Repr: Copy + Clone + Debug + DebugWith + Eq + Hash;
    type Perm: Copy + Clone + Debug + DebugWith + Eq + Hash;
    type Base: Copy + Clone + Debug + DebugWith + Eq + Hash;
    type Placeholder: Copy + Clone + Debug + DebugWith + Eq + Hash;
    fn intern_base_data(
        tables: &dyn AsRef<Self::InternTables>,
        base_data: BaseData<Self>
    ) -> Self::Base;
fn own_perm(tables: &dyn AsRef<Self::InternTables>) -> Self::Perm;
fn known_repr(
        tables: &dyn AsRef<Self::InternTables>,
        repr_kind: ReprKind
    ) -> Self::Repr; fn direct_repr(tables: &dyn AsRef<Self::InternTables>) -> Self::Repr { ... }
fn error_type(tables: &dyn AsRef<Self::InternTables>) -> Ty<Self> { ... }
fn error_base_data(tables: &dyn AsRef<Self::InternTables>) -> Self::Base { ... } }

Associated Types

Loading content...

Required methods

fn intern_base_data(
    tables: &dyn AsRef<Self::InternTables>,
    base_data: BaseData<Self>
) -> Self::Base

fn own_perm(tables: &dyn AsRef<Self::InternTables>) -> Self::Perm

fn known_repr(
    tables: &dyn AsRef<Self::InternTables>,
    repr_kind: ReprKind
) -> Self::Repr

Loading content...

Provided methods

fn direct_repr(tables: &dyn AsRef<Self::InternTables>) -> Self::Repr

fn error_type(tables: &dyn AsRef<Self::InternTables>) -> Ty<Self>

fn error_base_data(tables: &dyn AsRef<Self::InternTables>) -> Self::Base

Loading content...

Implementors

impl TypeFamily for BaseInferred[src]

type InternTables = BaseInferredTables

type Repr = Erased

type Perm = Erased

type Base = Base

type Placeholder = Placeholder

fn direct_repr(tables: &dyn AsRef<Self::InternTables>) -> Self::Repr[src]

fn error_type(tables: &dyn AsRef<Self::InternTables>) -> Ty<Self>[src]

fn error_base_data(tables: &dyn AsRef<Self::InternTables>) -> Self::Base[src]

impl TypeFamily for Declaration[src]

type InternTables = DeclarationTables

type Repr = ReprKind

type Perm = Perm

type Base = Base

type Placeholder = !

fn direct_repr(tables: &dyn AsRef<Self::InternTables>) -> Self::Repr[src]

fn error_type(tables: &dyn AsRef<Self::InternTables>) -> Ty<Self>[src]

fn error_base_data(tables: &dyn AsRef<Self::InternTables>) -> Self::Base[src]

impl TypeFamily for FullInferred[src]

type InternTables = FullInferredTables

type Repr = Erased

type Perm = PermKind

type Base = Base

type Placeholder = Placeholder

fn direct_repr(tables: &dyn AsRef<Self::InternTables>) -> Self::Repr[src]

fn error_type(tables: &dyn AsRef<Self::InternTables>) -> Ty<Self>[src]

fn error_base_data(tables: &dyn AsRef<Self::InternTables>) -> Self::Base[src]

Loading content...