Record Class CheckOperatorData

java.lang.Object
java.lang.Record
org.ek9lang.compiler.phase3.CheckOperatorData

record CheckOperatorData(ISymbol symbol, IToken operatorUseToken, MethodSymbolSearch search, boolean onType) extends Record
What an operator check needs: the operand, where the operator is used, and the operator search.

The operand is normally a VALUE. A caller that only knows a TYPE - a stream stage checking the element type has <=> or #? - says so with forType(ISymbol, IToken, MethodSymbolSearch): the operand is then the type itself, and the check that stops an enumeration TYPE being used as a value does not apply (it rejected cat Hue | sort, front-end rationalisation F02).

  • Constructor Details

    • CheckOperatorData

      CheckOperatorData(ISymbol symbol, IToken operatorUseToken, MethodSymbolSearch search)
      An operator used on a VALUE (the usual case).
    • CheckOperatorData

      CheckOperatorData(ISymbol symbol, IToken operatorUseToken, MethodSymbolSearch search, boolean onType)
      Creates an instance of a CheckOperatorData record class.
      Parameters:
      symbol - the value for the symbol record component
      operatorUseToken - the value for the operatorUseToken record component
      search - the value for the search record component
      onType - the value for the onType record component
  • Method Details

    • forType

      static CheckOperatorData forType(ISymbol type, IToken operatorUseToken, MethodSymbolSearch search)
      An operator required of a TYPE, by a caller that has no value of it.
    • toString

      public final String 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.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • 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.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      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 with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • symbol

      public ISymbol symbol()
      Returns the value of the symbol record component.
      Returns:
      the value of the symbol record component
    • operatorUseToken

      public IToken operatorUseToken()
      Returns the value of the operatorUseToken record component.
      Returns:
      the value of the operatorUseToken record component
    • search

      public MethodSymbolSearch search()
      Returns the value of the search record component.
      Returns:
      the value of the search record component
    • onType

      public boolean onType()
      Returns the value of the onType record component.
      Returns:
      the value of the onType record component