org.aspectj.org.eclipse.jdt.internal.compiler.ast
Class LambdaExpression

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
          extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
              extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.FunctionalExpression
                  extended by org.aspectj.org.eclipse.jdt.internal.compiler.ast.LambdaExpression
All Implemented Interfaces:
ReferenceContext, TypeConstants, TypeIds, ProblemSeverities
Direct Known Subclasses:
SelectionOnLambdaExpression

public class LambdaExpression
extends FunctionalExpression
implements ReferenceContext, ProblemSeverities


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
TypeConstants.CloseMethodRecord
 
Field Summary
 Argument[] arguments
           
 int arrowPosition
           
 Statement body
           
 boolean hasParentheses
           
 boolean isSerializable
           
 int ordinal
           
 LambdaExpression original
           
 SyntheticArgumentBinding[] outerLocalVariables
           
 MethodScope scope
           
 boolean shouldCaptureInstance
           
 char[] text
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.FunctionalExpression
actualMethodBinding, binding, bootstrapMethodNumber, compilationResult, descriptor, ellipsisArgument, enclosingScope, expectedType, expressionContext, resultExpressions, silentErrorHandlingPolicy
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
constant, implicitConversion, resolvedType, statementEnd
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
COMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINED
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
Bit1, 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, Used
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.problem.ProblemSeverities
Abort, AbortCompilation, AbortCompilationUnit, AbortMethod, AbortType, Error, Fatal, Ignore, InternalError, Optional, SecondaryError, Warning
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants
ANNOTATION, 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, ZIP
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeIds
BitAutoCloseable, 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 Summary
LambdaExpression(CompilationResult compilationResult, boolean assistNode)
           
 
Method Summary
 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
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.FunctionalExpression
checkAgainstFinalTargetType, expectedType, getExpressionContext, getRequiredBridges, invocationTargetType, isBoxingCompatibleWith, isPolyExpression, isPolyExpression, nullStatus, recordFunctionalType, reportSamProblem, setCompilationResult, setExpectedType, setExpressionContext, tagAsEllipsisArgument
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
analyseCode, 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, traverse
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
analyseArguments, branchChainTo, checkAgainstNullTypeAnnotation, complainIfUnreachable, findConstructorBinding, generateArguments, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, recordExceptionsForEnclosingLambda, resolveCase
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
checkInvocationArguments, concreteStatement, copySE8AnnotationsToType, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, isUnqualifiedSuper, printAnnotations, printIndent, printModifiers, receiverIsImplicitThis, resolveAnnotations, resolveAnnotations, resolveAnnotations, resolveDeprecatedAnnotations, resolvePolyExpressionArguments, resolvePolyExpressionArguments, sourceEnd, sourceStart, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

arguments

public Argument[] arguments

arrowPosition

public int arrowPosition

body

public Statement body

hasParentheses

public boolean hasParentheses

scope

public MethodScope scope

isSerializable

public boolean isSerializable

original

public LambdaExpression original

outerLocalVariables

public SyntheticArgumentBinding[] outerLocalVariables

shouldCaptureInstance

public boolean shouldCaptureInstance

ordinal

public int ordinal

text

public char[] text
Constructor Detail

LambdaExpression

public LambdaExpression(CompilationResult compilationResult,
                        boolean assistNode)
Method Detail

setArguments

public void setArguments(Argument[] arguments)

arguments

public Argument[] arguments()

argumentTypes

public TypeBinding[] argumentTypes()

setBody

public void setBody(Statement body)

body

public Statement body()

resultExpressions

public Expression[] resultExpressions()

setArrowPosition

public void setArrowPosition(int arrowPosition)

arrowPosition

public int arrowPosition()

original

protected FunctionalExpression original()

generateCode

public void generateCode(BlockScope currentScope,
                         CodeStream codeStream,
                         boolean valueRequired)
Description copied from class: Expression
Every expression is responsible for generating its implicit conversion when necessary.

Overrides:
generateCode in class Expression
Parameters:
currentScope - org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScope
codeStream - org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream
valueRequired - boolean

kosherDescriptor

public boolean kosherDescriptor(Scope currentScope,
                                MethodBinding sam,
                                boolean shouldChatter)
Overrides:
kosherDescriptor in class FunctionalExpression

resolveType

public TypeBinding resolveType(BlockScope blockScope)
Description copied from class: Expression
Resolve the type of this expression in the context of a blockScope

Overrides:
resolveType in class FunctionalExpression
Returns:
Return the actual type of this expression after resolution

findGroundTargetTypeForElidedLambda

public ReferenceBinding findGroundTargetTypeForElidedLambda(BlockScope blockScope,
                                                            ParameterizedTypeBinding withWildCards)

argumentsTypeElided

public boolean argumentsTypeElided()
Overrides:
argumentsTypeElided in class FunctionalExpression

analyseCode

public FlowInfo analyseCode(BlockScope currentScope,
                            FlowContext flowContext,
                            FlowInfo flowInfo)
Overrides:
analyseCode in class Expression

isPertinentToApplicability

public boolean isPertinentToApplicability(TypeBinding targetType,
                                          MethodBinding method)
Overrides:
isPertinentToApplicability in class FunctionalExpression

isVoidCompatible

public boolean isVoidCompatible()

isValueCompatible

public boolean isValueCompatible()

printExpression

public java.lang.StringBuffer printExpression(int tab,
                                              java.lang.StringBuffer output)
Specified by:
printExpression in class Expression

printExpression

public java.lang.StringBuffer printExpression(int tab,
                                              java.lang.StringBuffer output,
                                              boolean makeShort)

expectedResultType

public TypeBinding expectedResultType()

traverse

public void traverse(ASTVisitor visitor,
                     BlockScope blockScope)
Description copied from class: Expression
Traverse an expression in the context of a blockScope

Overrides:
traverse in class Expression

getScope

public MethodScope getScope()

isCompatibleWith

public boolean isCompatibleWith(TypeBinding left,
                                Scope someScope)
Overrides:
isCompatibleWith in class Expression

getResolvedCopyForInferenceTargeting

public 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.

Parameters:
targetType - the target functional type against which inference is attempted, must be a non-null valid functional type
Returns:
a resolved copy of 'this' or null if significant errors where encountered

sIsMoreSpecific

public boolean sIsMoreSpecific(TypeBinding s,
                               TypeBinding t,
                               Scope skope)
Overrides:
sIsMoreSpecific in class Expression

returnsExpression

public void returnsExpression(Expression expression,
                              TypeBinding resultType)

compilationResult

public CompilationResult compilationResult()
Specified by:
compilationResult in interface ReferenceContext

abort

public void abort(int abortLevel,
                  CategorizedProblem problem)
Specified by:
abort in interface ReferenceContext

getCompilationUnitDeclaration

public CompilationUnitDeclaration getCompilationUnitDeclaration()
Specified by:
getCompilationUnitDeclaration in interface ReferenceContext

hasErrors

public boolean hasErrors()
Specified by:
hasErrors in interface ReferenceContext

tagAsHavingErrors

public void tagAsHavingErrors()
Specified by:
tagAsHavingErrors in interface ReferenceContext

tagAsHavingIgnoredMandatoryErrors

public void tagAsHavingIgnoredMandatoryErrors(int problemId)
Specified by:
tagAsHavingIgnoredMandatoryErrors in interface ReferenceContext

throwsException

public void throwsException(TypeBinding exceptionType)

getThrownExceptions

public java.util.Set<TypeBinding> getThrownExceptions()

generateCode

public void generateCode(ClassScope classScope,
                         ClassFile classFile)

generateCode

public void generateCode(ClassFile classFile)

addSyntheticArgument

public void addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)

getSyntheticArgument

public SyntheticArgumentBinding getSyntheticArgument(LocalVariableBinding actualOuterLocalVariable)

getMethodBinding

public MethodBinding getMethodBinding()
Overrides:
getMethodBinding in class FunctionalExpression

diagnosticsSourceEnd

public int diagnosticsSourceEnd()
Overrides:
diagnosticsSourceEnd in class FunctionalExpression

getMarkerInterfaces

public TypeBinding[] getMarkerInterfaces()

getTypeBinding

public ReferenceBinding getTypeBinding()