java.lang.Object
java.lang.Record
org.aya.tyck.pat.IApplyConfl
public record IApplyConfl(@NotNull org.aya.syntax.core.def.FnDef def, @NotNull kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term.Matching> matchings, boolean orderIndep, @NotNull org.aya.util.error.SourcePos sourcePos, @NotNull ExprTycker tycker)
extends Record
This is XTT-specific confluence check, very simple: we check for all combinations.
So, if we do
def infix + (a b : Int) : Int | zro i, zro j => uThis thing will check the following:
zro 0, zro 0zro 0, zro 1zro 1, zro 1zro 1, zro 0
zro 0, zro j and zro i, zro 0.
The latter looks like smaller number of checks, but honestly I don't know how to do it in terms of
pure patterns. The old version of Aya used a hack based on object identity, and I don't like it.
This one is translatable to a purely functional programming language.-
Constructor Summary
ConstructorsConstructorDescriptionIApplyConfl(@NotNull org.aya.syntax.core.def.FnDef def, @NotNull kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term.Matching> matchings, boolean orderIndep, @NotNull org.aya.util.error.SourcePos sourcePos, @NotNull ExprTycker tycker) Creates an instance of aIApplyConflrecord class.IApplyConfl(@NotNull org.aya.syntax.core.def.FnDef def, @NotNull ExprTycker tycker, @NotNull org.aya.util.error.SourcePos pos) -
Method Summary
Modifier and TypeMethodDescriptionvoidcheck()@NotNull org.aya.syntax.core.def.FnDefdef()Returns the value of thedefrecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.@NotNull kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term.Matching> Returns the value of thematchingsrecord component.booleanReturns the value of theorderIndeprecord component.@NotNull org.aya.util.error.SourcePosReturns the value of thesourcePosrecord component.final StringtoString()Returns a string representation of this record class.@NotNull ExprTyckertycker()Returns the value of thetyckerrecord component.
-
Constructor Details
-
IApplyConfl
public IApplyConfl(@NotNull @NotNull org.aya.syntax.core.def.FnDef def, @NotNull @NotNull ExprTycker tycker, @NotNull @NotNull org.aya.util.error.SourcePos pos) -
IApplyConfl
public IApplyConfl(@NotNull @NotNull org.aya.syntax.core.def.FnDef def, @NotNull @NotNull kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term.Matching> matchings, boolean orderIndep, @NotNull @NotNull org.aya.util.error.SourcePos sourcePos, @NotNull @NotNull ExprTycker tycker) Creates an instance of aIApplyConflrecord class.- Parameters:
def- the value for thedefrecord componentmatchings- the value for thematchingsrecord componentorderIndep- the value for theorderIndeprecord componentsourcePos- the value for thesourcePosrecord componenttycker- the value for thetyckerrecord component
-
-
Method Details
-
check
public void check() -
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with '=='. -
def
@NotNull public @NotNull org.aya.syntax.core.def.FnDef def()Returns the value of thedefrecord component.- Returns:
- the value of the
defrecord component
-
matchings
@NotNull public @NotNull kala.collection.immutable.ImmutableSeq<org.aya.syntax.core.term.Term.Matching> matchings()Returns the value of thematchingsrecord component.- Returns:
- the value of the
matchingsrecord component
-
orderIndep
public boolean orderIndep()Returns the value of theorderIndeprecord component.- Returns:
- the value of the
orderIndeprecord component
-
sourcePos
@NotNull public @NotNull org.aya.util.error.SourcePos sourcePos()Returns the value of thesourcePosrecord component.- Returns:
- the value of the
sourcePosrecord component
-
tycker
Returns the value of thetyckerrecord component.- Returns:
- the value of the
tyckerrecord component
-