trait LowerWithEnv {
    type Lowered;

    // Required method
    fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>;
}

Required Associated Types§

Required Methods§

source

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

Implementations on Foreign Types§

source§

impl LowerWithEnv for (&Goal, QuantifierKind, &Vec<VariableKind>)

§

type Lowered = Goal<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for (&AdtDefn, AdtId<ChalkIr>)

§

type Lowered = AdtDatum<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for (&FnDefn, FnDefId<ChalkIr>)

§

type Lowered = FnDefDatum<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for (&Impl, ImplId<ChalkIr>, &BTreeMap<(ImplId<ChalkIr>, Identifier), AssociatedTyValueId<ChalkIr>>)

§

type Lowered = ImplDatum<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for (&TraitDefn, TraitId<ChalkIr>)

§

type Lowered = TraitDatum<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for Const

§

type Lowered = Const<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for DomainGoal

§

type Lowered = Vec<DomainGoal<ChalkIr>>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for GenericArg

§

type Lowered = GenericArg<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for Goal

§

type Lowered = Goal<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for InlineBound

§

type Lowered = InlineBound<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for LeafGoal

§

type Lowered = Goal<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for Lifetime

§

type Lowered = Lifetime<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for Ty

§

type Lowered = Ty<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for WhereClause

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

Lower from an AST where clause to an internal IR. Some AST where clauses can lower to multiple ones, this is why we return a Vec. As for now, this is the only the case for where T: Foo<Item = U> which lowers to Implemented(T: Foo) and ProjectionEq(<T as Foo>::Item = U).

§

type Lowered = Vec<WhereClause<ChalkIr>>

source§

impl LowerWithEnv for AdtRepr

§

type Lowered = AdtRepr<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for AliasEqBound

§

type Lowered = AliasEqBound<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for Clause

§

type Lowered = Vec<ProgramClause<ChalkIr>>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for ClosureDefn

source§

impl LowerWithEnv for ProjectionTy

§

type Lowered = ProjectionTy<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for QuantifiedInlineBound

source§

impl LowerWithEnv for QuantifiedWhereClause

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

Lower from an AST where clause to an internal IR. Some AST where clauses can lower to multiple ones, this is why we return a Vec. As for now, this is the only the case for where T: Foo<Item = U> which lowers to Implemented(T: Foo) and ProjectionEq(<T as Foo>::Item = U).

§

type Lowered = Vec<Binders<WhereClause<ChalkIr>>>

source§

impl LowerWithEnv for TraitBound

§

type Lowered = TraitBound<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for TraitRef

§

type Lowered = TraitRef<ChalkIr>

source§

fn lower(&self, env: &Env<'_>) -> Result<Self::Lowered, RustIrError>

source§

impl LowerWithEnv for [QuantifiedInlineBound]

source§

impl LowerWithEnv for [QuantifiedWhereClause]

Implementors§