public class MessageSend extends Expression implements InvocationSite
InvocationSite.EmptyWithAstNodeTypeConstants.CloseMethodRecord| Modifier and Type | Field and Description |
|---|---|
TypeBinding |
actualReceiverType |
Expression[] |
arguments |
MethodBinding |
binding |
TypeBinding |
expectedType |
TypeBinding[] |
genericTypeArguments |
long |
nameSourcePosition |
Expression |
receiver |
char[] |
selector |
MethodBinding |
syntheticAccessor |
TypeReference[] |
typeArguments |
TypeBinding |
valueCast |
constant, 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, HasLocalType, HasSyntaxErrors, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideExpressionStatement, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsArgument, IsCompoundAssigned, IsDefaultConstructor, IsDiamond, IsElseIfStatement, IsElseStatementUnreachable, IsForeachElementVariable, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsSynthetic, IsThenStatementUnreachable, IsTryBlockExiting, IsUnionType, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, NeedReceiverGenericCast, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, ResolveJavadoc, RestrictiveFlagMASK, ReturnTypeIDMASK, sourceEnd, sourceStart, SuperAccess, ThenExit, Unchecked, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, UsedANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, APACHE, APACHE_IOUTILS, ASSERT_CLASS, ASSERT_FALSE, ASSERT_NOTNULL, ASSERT_NULL, ASSERT_TRUE, BOOLEAN, BYTE, 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, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, CORE, DOUBLE, ECLIPSE, EQUALS, FLOAT, FRAMEWORK, GETCLASS, GOOGLE, GUAVA_CLOSEABLES, HASHCODE, INIT, INJECT_PACKAGE, INJECT_TYPE, INT, INVOKE, IO, IS_NOTNULL, IS_TRUE, 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_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_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, 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_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVA_UTIL_OBJECTS, JAVA_UTIL_ZIP_WRAPPER_CLOSEABLES, JAVAX, JAVAX_ANNOTATION_INJECT_INJECT, JAVAX_RMI_CORBA_STUB, JUNIT, JUNIT_FRAMEWORK_ASSERT, LANG, LANG3, LENGTH, LONG, 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_JUNIT_ASSERT, OTHER_WRAPPER_CLOSEABLES, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, REQUIRE_NON_NULL, 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, 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, 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_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_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_long, T_null, T_OrgApacheCommonsLang3Validate, T_OrgApacheCommonsLangValidate, T_OrgEclipseCoreRuntimeAssert, T_OrgJunitAssert, T_short, T_undefined, T_void, UNBOXING| Constructor and Description |
|---|
MessageSend() |
| Modifier and Type | Method and Description |
|---|---|
FlowInfo |
analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo) |
boolean |
checkNPE(BlockScope scope,
FlowContext flowContext,
FlowInfo flowInfo)
Check this expression against potential NPEs, which may occur:
if the expression is the receiver in a field access, qualified allocation, array reference or message send
incl.
|
void |
computeConversion(Scope scope,
TypeBinding runtimeTimeType,
TypeBinding compileTimeType)
Base types need that the widening is explicitly done by the compiler using some bytecode like i2f.
|
TypeBinding |
expectedType()
Implementation of
InvocationSite.expectedType()
suitable at this level. |
void |
generateCode(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
MessageSend code generation
|
TypeBinding[] |
genericTypeArguments() |
boolean |
isSuperAccess() |
boolean |
isTypeAccess() |
void |
manageSyntheticAccessIfNecessary(BlockScope currentScope,
FlowInfo flowInfo) |
int |
nullStatus(FlowInfo flowInfo,
FlowContext flowContext) |
TypeBinding |
postConversionType(Scope scope)
Returns the type of the expression after required implicit conversions.
|
StringBuffer |
printExpression(int indent,
StringBuffer output) |
TypeBinding |
resolveType(BlockScope scope)
Resolve the type of this expression in the context of a blockScope
|
void |
setActualReceiverType(ReferenceBinding receiverType) |
void |
setDepth(int depth) |
void |
setExpectedType(TypeBinding expectedType)
Record the type expectation before this expression is typechecked.
|
void |
setFieldIndex(int depth) |
void |
traverse(ASTVisitor visitor,
BlockScope blockScope)
Traverse an expression in the context of a blockScope
|
analyseCode, checkCastTypesCompatibility, checkNPEbyUnboxing, checkUnsafeCast, forcedToBeRaw, generateCode, generateOptimizedBoolean, generateOptimizedStringConcatenation, generateOptimizedStringConcatenationCreation, getDirectBinding, isCompactableOperation, isConstantValueOfTypeAssignableToType, isConstantValueRepresentable, isTypeReference, localVariableBinding, markAsNonNull, nullAnnotatedVariableBinding, optimizedBooleanConstant, print, printStatement, resolve, resolveType, resolveTypeExpecting, reusableJSRTarget, tagAsNeedCheckCast, tagAsUnnecessaryCast, toTypeReference, traverseanalyseArguments, branchChainTo, checkAssignmentAgainstNullAnnotation, complainIfUnreachable, generateArguments, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, resolveCasecheckInvocationArguments, concreteStatement, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printAnnotations, printIndent, printModifiers, resolveAnnotations, resolveDeprecatedAnnotations, sourceEnd, sourceStart, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitsourceEnd, sourceStartpublic Expression receiver
public char[] selector
public Expression[] arguments
public MethodBinding binding
public MethodBinding syntheticAccessor
public TypeBinding expectedType
public long nameSourcePosition
public TypeBinding actualReceiverType
public TypeBinding valueCast
public TypeReference[] typeArguments
public TypeBinding[] genericTypeArguments
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
analyseCode in class Expressionpublic boolean checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
ExpressioncheckNPE in class Expressionscope - the scope of the analysisflowContext - the current flow contextflowInfo - the upstream flow info; caveat: may get modifiedpublic void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType)
Expressionpublic void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
generateCode in class ExpressioncurrentScope - org.eclipse.jdt.internal.compiler.lookup.BlockScopecodeStream - org.eclipse.jdt.internal.compiler.codegen.CodeStreamvalueRequired - booleanpublic TypeBinding[] genericTypeArguments()
genericTypeArguments in interface InvocationSiteInvocationSite.genericTypeArguments()public boolean isSuperAccess()
isSuperAccess in interface InvocationSitepublic boolean isTypeAccess()
isTypeAccess in interface InvocationSitepublic void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
public int nullStatus(FlowInfo flowInfo, FlowContext flowContext)
nullStatus in class Expressionpublic TypeBinding postConversionType(Scope scope)
ExpressionpostConversionType in class ExpressionExpression.postConversionType(Scope)public StringBuffer printExpression(int indent, StringBuffer output)
printExpression in class Expressionpublic TypeBinding resolveType(BlockScope scope)
ExpressionresolveType in class Expressionpublic void setActualReceiverType(ReferenceBinding receiverType)
setActualReceiverType in interface InvocationSitepublic void setDepth(int depth)
setDepth in interface InvocationSitepublic void setExpectedType(TypeBinding expectedType)
ExpressionsetExpectedType in class ExpressionexpectedType - The type denoting an expectation in the context of an assignment conversionExpression.setExpectedType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding)public void setFieldIndex(int depth)
setFieldIndex in interface InvocationSitepublic TypeBinding expectedType()
StatementInvocationSite.expectedType()
suitable at this level. Subclasses should override as necessary.expectedType in interface InvocationSiteexpectedType in class StatementInvocationSite.expectedType()public void traverse(ASTVisitor visitor, BlockScope blockScope)
Expressiontraverse in class ExpressionCopyright © 2013. All rights reserved.