public class LambdaExpression extends FunctionalExpression implements ReferenceContext, ProblemSeverities
TypeConstants.CloseMethodRecord| Modifier and Type | Field and Description |
|---|---|
Argument[] |
arguments |
int |
arrowPosition |
Statement |
body |
boolean |
hasParentheses |
boolean |
isSerializable |
int |
ordinal |
LambdaExpression |
original |
SyntheticArgumentBinding[] |
outerLocalVariables |
MethodScope |
scope |
boolean |
shouldCaptureInstance |
char[] |
text |
actualMethodBinding, binding, bootstrapMethodNumber, compilationResult, descriptor, ellipsisArgument, enclosingScope, expectedType, expressionContext, resultExpressions, silentErrorHandlingPolicyconstant, implicitConversion, resolvedType, statementEndCOMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINEDBit1, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15, Bit16, Bit17, Bit18, Bit19, Bit2, Bit20, Bit21, Bit22, Bit23, Bit24, Bit25, Bit26, Bit27, Bit28, Bit29, Bit3, Bit30, Bit31, Bit32, Bit32L, Bit33L, Bit34L, Bit35L, Bit36L, Bit37L, Bit38L, Bit39L, Bit4, Bit40L, Bit41L, Bit42L, Bit43L, Bit44L, Bit45L, Bit46L, Bit47L, Bit48L, Bit49L, Bit5, Bit50L, Bit51L, Bit52L, Bit53L, Bit54L, Bit55L, Bit56L, Bit57L, Bit58L, Bit59L, Bit6, Bit60L, Bit61L, Bit62L, Bit63L, Bit64L, Bit7, Bit8, Bit9, bits, BlockExit, CanBeStatic, ContainsAssertion, DepthMASK, DepthSHIFT, DidResolve, DisableUnnecessaryCastCheck, DiscardEnclosingInstance, DocumentedCasesOmitted, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, GenerateCheckcast, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasFunctionalInterfaceTypes, HasLocalType, HasSyntaxErrors, HasTypeAnnotations, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideExpressionStatement, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsArgument, IsCapturedOuterLocal, IsCompoundAssigned, IsDefaultConstructor, IsDiamond, IsElseIfStatement, IsElseStatementUnreachable, IsForeachElementVariable, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsSynthetic, IsThenStatementUnreachable, IsTryBlockExiting, IsTypeElided, IsUnionType, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, NeedReceiverGenericCast, NO_ARGUMENTS, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, ResolveJavadoc, RestrictiveFlagMASK, ReturnTypeIDMASK, ShadowsOuterLocal, sourceEnd, sourceStart, SuperAccess, ThenExit, Unchecked, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, UsedAbort, AbortCompilation, AbortCompilationUnit, AbortMethod, AbortType, Error, Fatal, Ignore, InternalError, Optional, SecondaryError, WarningANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, ANONYMOUS_METHOD, APACHE, APACHE_DBUTILS, APACHE_IOUTILS, ASSERT_CLASS, ASSERT_FALSE, ASSERT_NOTNULL, ASSERT_NULL, ASSERT_TRUE, BOOLEAN, BYTE, CAPTURE18, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CHECK_ARGUMENT, CHECK_NOT_NULL, CHECK_STATE, CLINIT, CLONE, CLOSE, CLOSE_QUIETLY, closeMethods, COM, COM_GOOGLE_COMMON_BASE_PRECONDITIONS, COM_GOOGLE_INJECT_INJECT, COMMONS, COMPILER, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, CORE, DEFAULT_LOCATION__ARRAY_CONTENTS, DEFAULT_LOCATION__FIELD, DEFAULT_LOCATION__PARAMETER, DEFAULT_LOCATION__RETURN_TYPE, DEFAULT_LOCATION__TYPE_ARGUMENT, DEFAULT_LOCATION__TYPE_BOUND, DEFAULT_LOCATION__TYPE_PARAMETER, DESERIALIZE_LAMBDA, DOM, DOUBLE, ECLIPSE, EQUALS, FLOAT, FRAMEWORK, GETCLASS, GOOGLE, GUAVA_CLOSEABLES, HASHCODE, INIT, INJECT_PACKAGE, INJECT_TYPE, INT, INTERNAL, INVOKE, IO, IS_NOTNULL, IS_TRUE, ITYPEBINDING, JAVA, JAVA_IO, JAVA_IO_CLOSEABLE, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_RESOURCE_FREE_CLOSEABLES, JAVA_IO_SERIALIZABLE, JAVA_IO_WRAPPER_CLOSEABLES, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_REPEATABLE, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_AUTOCLOSEABLE, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_FUNCTIONAL_INTERFACE, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_LAMBDAMETAFACTORY, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLES, JAVA_LANG_INVOKE_SERIALIZEDLAMBDA, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_NIO_FILE_FILES, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVA_UTIL_OBJECTS, JAVA_UTIL_ZIP_WRAPPER_CLOSEABLES, JAVAX, JAVAX_ANNOTATION_INJECT_INJECT, JAVAX_RMI_CORBA_STUB, JDT, JUNIT, JUNIT_FRAMEWORK_ASSERT, LAMBDA_TYPE, LANG, LANG3, LENGTH, LONG, LOOKUP, MAIN, MISMATCH, NOT_NULL, NULL, OBJECT, OK, OPTIONAL, ORG, ORG_APACHE_COMMONS_LANG_VALIDATE, ORG_APACHE_COMMONS_LANG3_VALIDATE, ORG_ECLIPSE_CORE_RUNTIME_ASSERT, ORG_ECLIPSE_JDT_CORE_DOM_ITYPEBINDING, ORG_ECLIPSE_JDT_INTERNAL_COMPILER_LOOKUP_TYPEBINDING, ORG_JUNIT_ASSERT, OTHER_WRAPPER_CLOSEABLES, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, REQUIRE_NON_NULL, RESOURCE_FREE_CLOSEABLE_STREAM, RUNTIME, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, SYNTHETIC_SWITCH_ENUM_TABLE, TYPE, TYPE_PARAMETER_TARGET, TYPE_USE_TARGET, TYPEBINDING, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALIDATE_CLASS, VALUE, VALUEOF, VALUES, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE, ZIPBitAutoCloseable, BitCloseable, BitResourceFreeCloseable, BitUninitialized, BitUninternedType, BitWrapperCloseable, Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Byte2Byte, Byte2Char, Byte2Double, Byte2Float, Byte2Int, Byte2Long, Byte2Short, Byte2String, Char2Byte, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Byte, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Byte, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, InheritableBits, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2Null, Null2String, Object2boolean, Object2byte, Object2char, Object2double, Object2float, Object2int, Object2long, Object2Object, Object2short, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_ComGoogleCommonBasePreconditions, T_ComGoogleInjectInject, T_ConfiguredAnnotationNonNull, T_ConfiguredAnnotationNonNullByDefault, T_ConfiguredAnnotationNullable, T_double, T_float, T_int, T_JavaIoException, T_JavaIoExternalizable, T_JavaIoObjectStreamException, T_JavaIoPrintStream, T_JavaIoSerializable, T_JavaLangAnnotationAnnotation, T_JavaLangAnnotationDocumented, T_JavaLangAnnotationElementType, T_JavaLangAnnotationInherited, T_JavaLangAnnotationRepeatable, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangAutoCloseable, T_JavaLangBoolean, T_JavaLangByte, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangCloneable, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangEnum, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangFunctionalInterface, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangInvokeMethodHandlePolymorphicSignature, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangSafeVarargs, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilCollection, T_JavaUtilIterator, T_JavaUtilObjects, T_JavaxInjectInject, T_JunitFrameworkAssert, T_LastWellKnownTypeId, T_long, T_null, T_OrgApacheCommonsLang3Validate, T_OrgApacheCommonsLangValidate, T_OrgEclipseCoreRuntimeAssert, T_OrgJunitAssert, T_short, T_undefined, T_void, UNBOXING| Constructor and Description |
|---|
LambdaExpression(CompilationResult compilationResult,
boolean assistNode) |
| Modifier and Type | Method and Description |
|---|---|
void |
abort(int abortLevel,
CategorizedProblem problem) |
void |
addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) |
FlowInfo |
analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo) |
Argument[] |
arguments() |
boolean |
argumentsTypeElided() |
TypeBinding[] |
argumentTypes() |
int |
arrowPosition() |
Statement |
body() |
CompilationResult |
compilationResult() |
int |
diagnosticsSourceEnd() |
TypeBinding |
expectedResultType() |
ReferenceBinding |
findGroundTargetTypeForElidedLambda(BlockScope blockScope,
ParameterizedTypeBinding withWildCards) |
void |
generateCode(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Every expression is responsible for generating its implicit conversion when necessary.
|
void |
generateCode(ClassFile classFile) |
void |
generateCode(ClassScope classScope,
ClassFile classFile) |
CompilationUnitDeclaration |
getCompilationUnitDeclaration() |
TypeBinding[] |
getMarkerInterfaces() |
MethodBinding |
getMethodBinding() |
LambdaExpression |
getResolvedCopyForInferenceTargeting(TypeBinding targetType)
Get a resolved copy of this lambda for use by type inference, as to avoid spilling any premature
type results into the original lambda.
|
MethodScope |
getScope() |
SyntheticArgumentBinding |
getSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) |
java.util.Set<TypeBinding> |
getThrownExceptions() |
ReferenceBinding |
getTypeBinding() |
boolean |
hasErrors() |
boolean |
isCompatibleWith(TypeBinding left,
Scope someScope) |
boolean |
isPertinentToApplicability(TypeBinding targetType,
MethodBinding method) |
boolean |
isValueCompatible() |
boolean |
isVoidCompatible() |
boolean |
kosherDescriptor(Scope currentScope,
MethodBinding sam,
boolean shouldChatter) |
protected FunctionalExpression |
original() |
java.lang.StringBuffer |
printExpression(int tab,
java.lang.StringBuffer output) |
java.lang.StringBuffer |
printExpression(int tab,
java.lang.StringBuffer output,
boolean makeShort) |
TypeBinding |
resolveType(BlockScope blockScope)
Resolve the type of this expression in the context of a blockScope
|
Expression[] |
resultExpressions() |
void |
returnsExpression(Expression expression,
TypeBinding resultType) |
void |
setArguments(Argument[] arguments) |
void |
setArrowPosition(int arrowPosition) |
void |
setBody(Statement body) |
boolean |
sIsMoreSpecific(TypeBinding s,
TypeBinding t,
Scope skope) |
void |
tagAsHavingErrors() |
void |
tagAsHavingIgnoredMandatoryErrors(int problemId) |
void |
throwsException(TypeBinding exceptionType) |
void |
traverse(ASTVisitor visitor,
BlockScope blockScope)
Traverse an expression in the context of a blockScope
|
checkAgainstFinalTargetType, expectedType, getExpressionContext, getRequiredBridges, invocationTargetType, isBoxingCompatibleWith, isPolyExpression, isPolyExpression, nullStatus, recordFunctionalType, reportSamProblem, setCompilationResult, setExpectedType, setExpressionContext, tagAsEllipsisArgumentanalyseCode, checkCastTypesCompatibility, checkNPE, checkNPEbyUnboxing, checkUnsafeCast, computeConversion, forcedToBeRaw, generateCode, generateOptimizedBoolean, generateOptimizedStringConcatenation, generateOptimizedStringConcatenationCreation, getDirectBinding, isAssignmentCompatible, isCompactableOperation, isConstantValueOfTypeAssignableToType, isConstantValueRepresentable, isExactMethodReference, isTypeReference, localVariableBinding, markAsNonNull, nullAnnotatedVariableBinding, nullStatus, optimizedBooleanConstant, postConversionType, print, printStatement, resolve, resolveType, resolveTypeExpecting, reusableJSRTarget, statementExpression, tagAsNeedCheckCast, tagAsUnnecessaryCast, toTypeReference, traverseanalyseArguments, branchChainTo, checkAgainstNullTypeAnnotation, complainIfUnreachable, findConstructorBinding, generateArguments, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, recordExceptionsForEnclosingLambda, resolveCasecheckInvocationArguments, concreteStatement, copySE8AnnotationsToType, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, isUnqualifiedSuper, printAnnotations, printIndent, printModifiers, receiverIsImplicitThis, resolveAnnotations, resolveAnnotations, resolveAnnotations, resolveDeprecatedAnnotations, resolvePolyExpressionArguments, resolvePolyExpressionArguments, sourceEnd, sourceStart, toStringpublic Argument[] arguments
public int arrowPosition
public Statement body
public boolean hasParentheses
public MethodScope scope
public boolean isSerializable
public LambdaExpression original
public SyntheticArgumentBinding[] outerLocalVariables
public boolean shouldCaptureInstance
public int ordinal
public char[] text
public LambdaExpression(CompilationResult compilationResult, boolean assistNode)
public void setArguments(Argument[] arguments)
public Argument[] arguments()
public TypeBinding[] argumentTypes()
public void setBody(Statement body)
public Statement body()
public Expression[] resultExpressions()
public void setArrowPosition(int arrowPosition)
public int arrowPosition()
protected FunctionalExpression original()
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
ExpressiongenerateCode in class ExpressioncurrentScope - org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScopecodeStream - org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStreamvalueRequired - booleanpublic boolean kosherDescriptor(Scope currentScope, MethodBinding sam, boolean shouldChatter)
kosherDescriptor in class FunctionalExpressionpublic TypeBinding resolveType(BlockScope blockScope)
ExpressionresolveType in class FunctionalExpressionpublic ReferenceBinding findGroundTargetTypeForElidedLambda(BlockScope blockScope, ParameterizedTypeBinding withWildCards)
public boolean argumentsTypeElided()
argumentsTypeElided in class FunctionalExpressionpublic FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
analyseCode in class Expressionpublic boolean isPertinentToApplicability(TypeBinding targetType, MethodBinding method)
isPertinentToApplicability in class FunctionalExpressionpublic boolean isVoidCompatible()
public boolean isValueCompatible()
public java.lang.StringBuffer printExpression(int tab,
java.lang.StringBuffer output)
printExpression in class Expressionpublic java.lang.StringBuffer printExpression(int tab,
java.lang.StringBuffer output,
boolean makeShort)
public TypeBinding expectedResultType()
public void traverse(ASTVisitor visitor, BlockScope blockScope)
Expressiontraverse in class Expressionpublic MethodScope getScope()
public boolean isCompatibleWith(TypeBinding left, Scope someScope)
isCompatibleWith in class Expressionpublic LambdaExpression getResolvedCopyForInferenceTargeting(TypeBinding targetType)
targetType - the target functional type against which inference is attempted, must be a non-null valid functional typepublic boolean sIsMoreSpecific(TypeBinding s, TypeBinding t, Scope skope)
sIsMoreSpecific in class Expressionpublic void returnsExpression(Expression expression, TypeBinding resultType)
public CompilationResult compilationResult()
compilationResult in interface ReferenceContextpublic void abort(int abortLevel,
CategorizedProblem problem)
abort in interface ReferenceContextpublic CompilationUnitDeclaration getCompilationUnitDeclaration()
getCompilationUnitDeclaration in interface ReferenceContextpublic boolean hasErrors()
hasErrors in interface ReferenceContextpublic void tagAsHavingErrors()
tagAsHavingErrors in interface ReferenceContextpublic void tagAsHavingIgnoredMandatoryErrors(int problemId)
tagAsHavingIgnoredMandatoryErrors in interface ReferenceContextpublic void throwsException(TypeBinding exceptionType)
public java.util.Set<TypeBinding> getThrownExceptions()
public void generateCode(ClassScope classScope, ClassFile classFile)
public void generateCode(ClassFile classFile)
public void addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)
public SyntheticArgumentBinding getSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)
public MethodBinding getMethodBinding()
getMethodBinding in class FunctionalExpressionpublic int diagnosticsSourceEnd()
diagnosticsSourceEnd in class FunctionalExpressionpublic TypeBinding[] getMarkerInterfaces()
public ReferenceBinding getTypeBinding()