Class CompileTimeDeclarationType
java.lang.Object
org.checkerframework.framework.util.typeinference8.types.AbstractExecutableType
org.checkerframework.framework.util.typeinference8.types.CompileTimeDeclarationType
Represents the compile-time declaration type of the method reference that is the method to which
the method reference refers. 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. The compile-time declaration type is the type of the actual method referenced by the method reference.
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 compile-time declaration type is int compareByField(MyClass this, MyClass
other).
-
Field Summary
Fields inherited from class org.checkerframework.framework.util.typeinference8.types.AbstractExecutableType
annotatedExecutableType, context, executableType, qualifierVars, typeFactory -
Constructor Summary
ConstructorsConstructorDescriptionCompileTimeDeclarationType(AnnotatedTypeMirror.AnnotatedExecutableType annotatedExecutableType, ExecutableType executableType, MemberReferenceTree methodRef, AnnotatedTypeMirror receiver, Java8InferenceContext context) Creates a compile-time declaration type for a method reference. -
Method Summary
Modifier and TypeMethodDescriptionReturns the method reference for which this is a compile-time declaration.getParameterTypes(Theta map, int size) Returns a list of the parameter types ofAbstractExecutableTypewhere the vararg parameter has been replaced by individual parameters so the result has lengthsize.getReturnType(Theta map) Returns the return type of this.Methods inherited from class org.checkerframework.framework.util.typeinference8.types.AbstractExecutableType
getAnnotatedType, getAnnotatedTypeVariables, getJavaType, getParameterTypes, getParameterTypes, getThrownTypes, getTypeVariables, hasTypeVariables, isVoid
-
Constructor Details
-
CompileTimeDeclarationType
public CompileTimeDeclarationType(AnnotatedTypeMirror.AnnotatedExecutableType annotatedExecutableType, ExecutableType executableType, MemberReferenceTree methodRef, AnnotatedTypeMirror receiver, Java8InferenceContext context) Creates a compile-time declaration type for a method reference.- Parameters:
annotatedExecutableType- annotated method or constructor typeexecutableType- a Java method or constructor typemethodRef- a method referencereceiver- the type of the receiver for this method referencecontext- the context
-
-
Method Details
-
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
Description copied from class:AbstractExecutableTypeReturns the return type of this.- Specified by:
getReturnTypein classAbstractExecutableType- Parameters:
map- a mapping from type variable to inference variable- Returns:
- the return type
-
getParameterTypes
Description copied from class:AbstractExecutableTypeReturns a list of the parameter types ofAbstractExecutableTypewhere the vararg parameter has been replaced by individual parameters so the result has lengthsize.- Specified by:
getParameterTypesin classAbstractExecutableType- Parameters:
map- a mapping from type variable to inference variablesize- the number of parameters to return; used to expand the vararg- Returns:
- a list of the parameter types of
AbstractExecutableType, of lengthsize
-