Module aya.base

Class PatClassifier


public final class PatClassifier extends StatedTycker
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final @NotNull org.aya.util.error.SourcePos
     

    Fields inherited from class org.aya.tyck.tycker.StatedTycker

    state

    Fields inherited from class org.aya.tyck.tycker.TracedTycker

    reporter, traceBuilder
  • Constructor Summary

    Constructors
    Constructor
    Description
    PatClassifier(@NotNull org.aya.util.reporter.Reporter reporter, @Nullable Trace.Builder traceBuilder, @NotNull TyckState state, @NotNull org.aya.util.error.SourcePos pos)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.PatClass<kala.collection.immutable.ImmutableSeq<org.aya.util.Arg<Term>>>>
    classify(@NotNull kala.collection.SeqLike<? extends @NotNull Pat.Preclause<?>> clauses, @NotNull kala.collection.immutable.ImmutableSeq<Term.Param> telescope, @NotNull StatedTycker tycker, @NotNull org.aya.util.error.SourcePos pos)
     
    static @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.PatClass<kala.collection.immutable.ImmutableSeq<org.aya.util.Arg<Term>>>>
    classify(@NotNull kala.collection.SeqLike<? extends @NotNull Pat.Preclause<?>> clauses, @NotNull kala.collection.immutable.ImmutableSeq<Term.Param> telescope, @NotNull TyckState state, @NotNull org.aya.util.reporter.Reporter reporter, @NotNull org.aya.util.error.SourcePos pos, @Nullable Trace.Builder builder)
     
    @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.PatClass<kala.collection.immutable.ImmutableSeq<org.aya.util.Arg<Term>>>>
    classifyN(@NotNull Subst subst, @NotNull kala.collection.SeqView<Term.Param> params, @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.Indexed<kala.collection.SeqView<Pat>>> clauses, int fuel)
     
    static int[]
    firstMatchDomination(@NotNull kala.collection.immutable.ImmutableSeq<Pattern.Clause> clauses, @NotNull org.aya.util.reporter.Reporter reporter, @NotNull kala.collection.immutable.ImmutableSeq<? extends org.aya.util.tyck.pat.PatClass<?>> classes)
     

    Methods inherited from class org.aya.tyck.tycker.StatedTycker

    compareRestr, conOwnerSubst, defCall, inferRef, unifier, whnf

    Methods inherited from class org.aya.tyck.tycker.TracedTycker

    fail, fail, newTycker, traced, tracing

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • pos

      @NotNull public final @NotNull org.aya.util.error.SourcePos pos
  • Constructor Details

    • PatClassifier

      public PatClassifier(@NotNull @NotNull org.aya.util.reporter.Reporter reporter, @Nullable Trace.Builder traceBuilder, @NotNull @NotNull TyckState state, @NotNull @NotNull org.aya.util.error.SourcePos pos)
  • Method Details

    • classify

      @NotNull public static @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.PatClass<kala.collection.immutable.ImmutableSeq<org.aya.util.Arg<Term>>>> classify(@NotNull @NotNull kala.collection.SeqLike<? extends @NotNull Pat.Preclause<?>> clauses, @NotNull @NotNull kala.collection.immutable.ImmutableSeq<Term.Param> telescope, @NotNull @NotNull StatedTycker tycker, @NotNull @NotNull org.aya.util.error.SourcePos pos)
    • classify

      @VisibleForTesting @NotNull public static @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.PatClass<kala.collection.immutable.ImmutableSeq<org.aya.util.Arg<Term>>>> classify(@NotNull @NotNull kala.collection.SeqLike<? extends @NotNull Pat.Preclause<?>> clauses, @NotNull @NotNull kala.collection.immutable.ImmutableSeq<Term.Param> telescope, @NotNull @NotNull TyckState state, @NotNull @NotNull org.aya.util.reporter.Reporter reporter, @NotNull @NotNull org.aya.util.error.SourcePos pos, @Nullable Trace.Builder builder)
    • classifyN

      @NotNull public @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.PatClass<kala.collection.immutable.ImmutableSeq<org.aya.util.Arg<Term>>>> classifyN(@NotNull @NotNull Subst subst, @NotNull @NotNull kala.collection.SeqView<Term.Param> params, @NotNull @NotNull kala.collection.immutable.ImmutableSeq<org.aya.util.tyck.pat.Indexed<kala.collection.SeqView<Pat>>> clauses, int fuel)
    • firstMatchDomination

      public static int[] firstMatchDomination(@NotNull @NotNull kala.collection.immutable.ImmutableSeq<Pattern.Clause> clauses, @NotNull @NotNull org.aya.util.reporter.Reporter reporter, @NotNull @NotNull kala.collection.immutable.ImmutableSeq<? extends org.aya.util.tyck.pat.PatClass<?>> classes)