public class ExplicitConstructorCall extends Statement implements Invocation
InvocationSite.EmptyWithAstNodeTypeConstants.CloseMethodRecord| Modifier and Type | Field and Description |
|---|---|
int |
accessMode |
Expression[] |
arguments |
MethodBinding |
binding |
TypeBinding[] |
genericTypeArguments |
VariableBinding[][] |
implicitArguments |
static int |
ImplicitSuper |
Expression |
qualification |
static int |
Super |
static int |
This |
TypeReference[] |
typeArguments |
int |
typeArgumentsSourceStart |
COMPLAINED_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, UsedANNOTATION, 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 |
|---|
ExplicitConstructorCall(int accessMode) |
| Modifier and Type | Method and Description |
|---|---|
FlowInfo |
analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo) |
Expression[] |
arguments() |
MethodBinding |
binding(TypeBinding targetType,
boolean reportErrors,
Scope scope)
Answer the resolved method binding of this invocation.
|
InferenceContext18 |
freshInferenceContext(Scope scope)
When inference for this invocationSite starts, get a fresh inference context, initialized from this site.
|
void |
generateCode(BlockScope currentScope,
CodeStream codeStream)
Constructor call code generation
|
TypeBinding[] |
genericTypeArguments() |
InferenceContext18 |
getInferenceContext(ParameterizedMethodBinding method)
Retrieve an inference context for the given method which must have been registered
using
Invocation.registerInferenceContext(ParameterizedGenericMethodBinding, InferenceContext18). |
InnerInferenceHelper |
innerInferenceHelper()
If this invocation has any poly expressions as arguments, this method answers an inference helper
that mediates during overload resolution, even if no actual inference happens for this invocation.
|
boolean |
innersNeedUpdate()
Answer whether the current invocation has inner expressions that still need updating after inference.
|
void |
innerUpdateDone()
Mark that updating (the need for which is signaled via
Invocation.innersNeedUpdate()) has been done. |
boolean |
isImplicitSuper() |
boolean |
isSuperAccess() |
boolean |
isTypeAccess() |
void |
manageSyntheticAccessIfNecessary(BlockScope currentScope,
FlowInfo flowInfo) |
java.lang.StringBuffer |
printStatement(int indent,
java.lang.StringBuffer output) |
void |
registerInferenceContext(ParameterizedGenericMethodBinding method,
InferenceContext18 infCtx18)
Register the given inference context, which produced the given method as its intermediate result.
|
void |
resolve(BlockScope scope) |
void |
setActualReceiverType(ReferenceBinding receiverType) |
void |
setDepth(int depth) |
void |
setFieldIndex(int depth) |
void |
traverse(ASTVisitor visitor,
BlockScope scope) |
boolean |
updateBindings(MethodBinding updatedBinding,
TypeBinding targetType)
Where the AST node may hold references to the results of Invocation Applicability Inference,
this method allows to update those references to the result of Invocation Type Inference.
|
boolean |
usesInference()
Answer true if this invocation has determined its binding using inference.
|
analyseArguments, branchChainTo, checkAgainstNullTypeAnnotation, complainIfUnreachable, expectedType, findConstructorBinding, generateArguments, getExpressionContext, invocationTargetType, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, print, recordExceptionsForEnclosingLambda, resolveCasecheckInvocationArguments, concreteStatement, copySE8AnnotationsToType, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, isUnqualifiedSuper, printAnnotations, printIndent, printModifiers, receiverIsImplicitThis, resolveAnnotations, resolveAnnotations, resolveAnnotations, resolveDeprecatedAnnotations, resolvePolyExpressionArguments, resolvePolyExpressionArguments, sourceEnd, sourceStart, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetExpressionContext, invocationTargetType, receiverIsImplicitThis, sourceEnd, sourceStartpublic Expression[] arguments
public Expression qualification
public MethodBinding binding
public int accessMode
public TypeReference[] typeArguments
public TypeBinding[] genericTypeArguments
public static final int ImplicitSuper
public static final int Super
public static final int This
public VariableBinding[][] implicitArguments
public int typeArgumentsSourceStart
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
analyseCode in class Statementpublic void generateCode(BlockScope currentScope, CodeStream codeStream)
generateCode in class StatementcurrentScope - org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScopecodeStream - org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStreampublic TypeBinding[] genericTypeArguments()
genericTypeArguments in interface InvocationSiteInvocationSite.genericTypeArguments()public boolean isImplicitSuper()
public boolean isSuperAccess()
isSuperAccess in interface InvocationSitepublic boolean isTypeAccess()
isTypeAccess in interface InvocationSitepublic void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo)
public java.lang.StringBuffer printStatement(int indent,
java.lang.StringBuffer output)
printStatement in class Statementpublic void resolve(BlockScope scope)
public void setActualReceiverType(ReferenceBinding receiverType)
setActualReceiverType in interface InvocationSitepublic void setDepth(int depth)
setDepth in interface InvocationSitepublic void setFieldIndex(int depth)
setFieldIndex in interface InvocationSitepublic void traverse(ASTVisitor visitor, BlockScope scope)
public MethodBinding binding(TypeBinding targetType, boolean reportErrors, Scope scope)
Invocationbinding in interface InvocationtargetType - the target type of this invocation or null if not yet knownreportErrors - if true then this is the last call, if no valid binding can be answered we should report an errorscope - if reportErrors is true then this scope can be used for error reportingpublic Expression[] arguments()
arguments in interface Invocationpublic boolean updateBindings(MethodBinding updatedBinding, TypeBinding targetType)
InvocationupdateBindings in interface InvocationupdatedBinding - the final method binding after full inferencetargetType - the target type used during Invocation Type Inferencepublic void registerInferenceContext(ParameterizedGenericMethodBinding method, InferenceContext18 infCtx18)
InvocationInvocationSite.getExpressionContext()
to continue the type inference.registerInferenceContext in interface Invocationpublic InferenceContext18 getInferenceContext(ParameterizedMethodBinding method)
InvocationInvocation.registerInferenceContext(ParameterizedGenericMethodBinding, InferenceContext18).getInferenceContext in interface Invocationmethod - an intermediate resolved candidate for this invocation
return a suspended inference context or null if none was registered for this method.public boolean usesInference()
InvocationusesInference in interface Invocationpublic boolean innersNeedUpdate()
InvocationinnersNeedUpdate in interface Invocationpublic void innerUpdateDone()
InvocationInvocation.innersNeedUpdate()) has been done.innerUpdateDone in interface Invocationpublic InnerInferenceHelper innerInferenceHelper()
InvocationinnerInferenceHelper in interface Invocationpublic InferenceContext18 freshInferenceContext(Scope scope)
InvocationSitefreshInferenceContext in interface InvocationSite