Module aya.base
Package org.aya.tyck

Class ExprTycker

All Implemented Interfaces:
Contextful, Problematic, Stateful, Unifiable

public final class ExprTycker extends AbstractTycker implements Unifiable
  • Field Details

    • withTerms

      @NotNull public final @NotNull kala.collection.mutable.MutableTreeSet<org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr.WithTerm>> withTerms
  • Constructor Details

    • ExprTycker

      public ExprTycker(@NotNull @NotNull TyckState state, @NotNull @NotNull org.aya.syntax.ref.LocalCtx ctx, @NotNull @NotNull LocalLet let, @NotNull @NotNull org.aya.util.reporter.Reporter reporter)
    • ExprTycker

      public ExprTycker(@NotNull @NotNull TyckState state, @NotNull @NotNull org.aya.util.reporter.Reporter reporter)
  • Method Details

    • addWithTerm

      public void addWithTerm(@NotNull org.aya.syntax.concrete.Expr.WithTerm with, @NotNull @NotNull org.aya.util.error.SourcePos pos, @NotNull @NotNull org.aya.syntax.core.term.Term type)
    • solveMetas

      public void solveMetas()
    • inherit

      @NotNull public @NotNull Jdg inherit(@NotNull @NotNull org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> expr, @NotNull @NotNull org.aya.syntax.core.term.Term type)
      Parameters:
      type - may not be in whnf, because we want unnormalized type to be used for unification.
    • ty

      @NotNull public @NotNull org.aya.syntax.core.term.Term ty(@NotNull @NotNull org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> expr)
    • sort

      @NotNull public Jdg.Sort sort(@NotNull @NotNull org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> expr)
    • synthesize

      @NotNull public @NotNull Jdg synthesize(@NotNull @NotNull org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> expr)
    • doSynthesize

      @NotNull public @NotNull Jdg doSynthesize(@NotNull @NotNull org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> expr)
    • unifier

      @NotNull public @NotNull TermComparator unifier(@NotNull @NotNull org.aya.util.error.SourcePos pos, @NotNull @NotNull org.aya.util.Ordering order)
      Specified by:
      unifier in interface Unifiable
    • subscoped

      @Contract(mutates="this") public <R> R subscoped(@NotNull @NotNull Supplier<R> action)
      Specified by:
      subscoped in interface Contextful
    • localLet

      @NotNull public @NotNull LocalLet localLet()
    • setLocalLet

      @NotNull public @NotNull LocalLet setLocalLet(@NotNull @NotNull LocalLet let)