Module aya.base

Class PatternTycker

java.lang.Object
org.aya.tyck.pat.PatternTycker
All Implemented Interfaces:
Problematic, Stateful

public class PatternTycker extends Object implements Problematic, Stateful
Tyck for Pattern's, the left hand side of one clause.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final record 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    PatternTycker(@NotNull ExprTycker exprTycker, @NotNull kala.collection.SeqView<org.aya.syntax.core.term.Param> telescope, @NotNull LocalLet asSubst, boolean allowImplicit, @NotNull org.aya.generic.NameGenerator nameGen)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static @NotNull kala.control.Result<kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term>,PatMatcher.State>
    checkAvail(@NotNull org.aya.syntax.core.term.call.DataCall type, @NotNull org.aya.syntax.core.def.ConDefLike con, @NotNull TyckState state)
    Check whether is available under
    @NotNull org.aya.util.reporter.Reporter
     
    @NotNull TyckState
     
    tyck(@NotNull kala.collection.SeqView<org.aya.util.Arg<org.aya.util.error.WithPos<org.aya.syntax.concrete.Pattern>>> patterns, @Nullable org.aya.util.error.WithPos<org.aya.syntax.concrete.Pattern> outerPattern, @Nullable org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> body)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.aya.tyck.tycker.Problematic

    fail, fail, fail

    Methods inherited from interface org.aya.tyck.tycker.Stateful

    freezeHoles, solve, whnf
  • Constructor Details

    • PatternTycker

      public PatternTycker(@NotNull @NotNull ExprTycker exprTycker, @NotNull @NotNull kala.collection.SeqView<org.aya.syntax.core.term.Param> telescope, @NotNull @NotNull LocalLet asSubst, boolean allowImplicit, @NotNull @NotNull org.aya.generic.NameGenerator nameGen)
  • Method Details

    • tyck

      @NotNull public @NotNull PatternTycker.TyckResult tyck(@NotNull @NotNull kala.collection.SeqView<org.aya.util.Arg<org.aya.util.error.WithPos<org.aya.syntax.concrete.Pattern>>> patterns, @Nullable @Nullable org.aya.util.error.WithPos<org.aya.syntax.concrete.Pattern> outerPattern, @Nullable @Nullable org.aya.util.error.WithPos<org.aya.syntax.concrete.Expr> body)
    • checkAvail

      @NotNull public static @NotNull kala.control.Result<kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term>,PatMatcher.State> checkAvail(@NotNull @NotNull org.aya.syntax.core.term.call.DataCall type, @NotNull @NotNull org.aya.syntax.core.def.ConDefLike con, @NotNull @NotNull TyckState state)
      Check whether is available under
    • reporter

      @NotNull public @NotNull org.aya.util.reporter.Reporter reporter()
      Specified by:
      reporter in interface Problematic
    • state

      @NotNull public @NotNull TyckState state()
      Specified by:
      state in interface Stateful