Class CompileTimeDeclarationType

java.lang.Object
org.checkerframework.framework.util.typeinference8.types.AbstractExecutableType
org.checkerframework.framework.util.typeinference8.types.CompileTimeDeclarationType

public class CompileTimeDeclarationType extends AbstractExecutableType
Represents the type of the compile-time declaration of the method reference. The compile-time declaration is the actual method referenced by the method reference. See JLS section 15.13.1 for a complete definition.

The type of a member reference is a functional interface. The function type of a member reference is the type of the single abstract method declared by the functional interface.

For example,


 class MyClass {
    public int compareByField(MyClass other) { ... }
  }
  Comparator<MyClass> func = MyClass::compareByField;
 

The function type is int compare(Comparator<MyClass> this, MyClass o1, MyClass o2) whereas the type of the compile-time declaration is int compareByField(MyClass this, MyClass other).

  • Constructor Details

  • Method Details

    • getMethodRef

      public MemberReferenceTree getMethodRef()
      Returns the method reference for which this is a compile-time declaration.
      Returns:
      the method reference for which this is a compile-time declaration
    • getReturnType

      public AbstractType getReturnType(@Nullable Theta map)
      Description copied from class: AbstractExecutableType
      Returns the return type of this.
      Specified by:
      getReturnType in class AbstractExecutableType
      Parameters:
      map - a mapping from type variable to inference variable, or null to treat no type variable as an inference variable
      Returns:
      the return type
    • getParameterTypes

      public List<AbstractType> getParameterTypes(@Nullable Theta map, int size)
      Description copied from class: AbstractExecutableType
      Returns the formal parameter types of this executable.

      If this invocation uses varargs, then the vararg parameter is replaced by individual parameters and the result has length size. Otherwise, size is ignored and the result contains one element per declared formal parameter, plus one for the receiver if this is an unbound method reference.

      Specified by:
      getParameterTypes in class AbstractExecutableType
      Parameters:
      map - a mapping from type variable to inference variable, or null to treat no type variable as an inference variable
      size - the number of parameters to return; used to expand the vararg. It is ignored if this invocation does not use varargs.
      Returns:
      the formal parameter types of this executable