org.aspectj.org.eclipse.jdt.internal.compiler.ast
Class ExplicitConstructorCall
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
org.aspectj.org.eclipse.jdt.internal.compiler.ast.ExplicitConstructorCall
- All Implemented Interfaces:
- Invocation, InvocationSite, TypeConstants, TypeIds
- Direct Known Subclasses:
- CompletionOnExplicitConstructorCall, SelectionOnExplicitConstructorCall
public class ExplicitConstructorCall
- extends Statement
- implements Invocation
| 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.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 |
|
Method Summary |
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. |
| Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement |
analyseArguments, branchChainTo, checkAgainstNullTypeAnnotation, complainIfUnreachable, expectedType, findConstructorBinding, generateArguments, getExpressionContext, invocationTargetType, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, print, 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 |
arguments
public Expression[] arguments
qualification
public Expression qualification
binding
public MethodBinding binding
accessMode
public int accessMode
typeArguments
public TypeReference[] typeArguments
genericTypeArguments
public TypeBinding[] genericTypeArguments
ImplicitSuper
public static final int ImplicitSuper
- See Also:
- Constant Field Values
Super
public static final int Super
- See Also:
- Constant Field Values
This
public static final int This
- See Also:
- Constant Field Values
implicitArguments
public VariableBinding[][] implicitArguments
typeArgumentsSourceStart
public int typeArgumentsSourceStart
ExplicitConstructorCall
public ExplicitConstructorCall(int accessMode)
analyseCode
public FlowInfo analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo)
- Specified by:
analyseCode in class Statement
generateCode
public void generateCode(BlockScope currentScope,
CodeStream codeStream)
- Constructor call code generation
- Specified by:
generateCode in class Statement
- Parameters:
currentScope - org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScopecodeStream - org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream
genericTypeArguments
public TypeBinding[] genericTypeArguments()
- Specified by:
genericTypeArguments in interface InvocationSite
- See Also:
InvocationSite.genericTypeArguments()
isImplicitSuper
public boolean isImplicitSuper()
isSuperAccess
public boolean isSuperAccess()
- Specified by:
isSuperAccess in interface InvocationSite
isTypeAccess
public boolean isTypeAccess()
- Specified by:
isTypeAccess in interface InvocationSite
manageSyntheticAccessIfNecessary
public void manageSyntheticAccessIfNecessary(BlockScope currentScope,
FlowInfo flowInfo)
printStatement
public java.lang.StringBuffer printStatement(int indent,
java.lang.StringBuffer output)
- Specified by:
printStatement in class Statement
resolve
public void resolve(BlockScope scope)
- Specified by:
resolve in class Statement
setActualReceiverType
public void setActualReceiverType(ReferenceBinding receiverType)
- Specified by:
setActualReceiverType in interface InvocationSite
setDepth
public void setDepth(int depth)
- Specified by:
setDepth in interface InvocationSite
setFieldIndex
public void setFieldIndex(int depth)
- Specified by:
setFieldIndex in interface InvocationSite
traverse
public void traverse(ASTVisitor visitor,
BlockScope scope)
- Overrides:
traverse in class ASTNode
binding
public MethodBinding binding(TypeBinding targetType,
boolean reportErrors,
Scope scope)
- Description copied from interface:
Invocation
- Answer the resolved method binding of this invocation.
If a target type is given, the invocation gets a chance to do repeated method lookup.
- Specified by:
binding in interface Invocation
- Parameters:
targetType - 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 reporting
arguments
public Expression[] arguments()
- Specified by:
arguments in interface Invocation
updateBindings
public boolean updateBindings(MethodBinding updatedBinding,
TypeBinding targetType)
- Description copied from interface:
Invocation
- 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.
Note that potentially more than just the method binding is updated.
- Specified by:
updateBindings in interface Invocation
- Parameters:
updatedBinding - the final method binding after full inferencetargetType - the target type used during Invocation Type Inference
- Returns:
- true if an update has happened
registerInferenceContext
public void registerInferenceContext(ParameterizedGenericMethodBinding method,
InferenceContext18 infCtx18)
- Description copied from interface:
Invocation
- Register the given inference context, which produced the given method as its intermediate result.
Later when the same method is selected as the most specific method, the inference context
for this pair (Invocation x MethodBinding) can be looked up using
InvocationSite.getExpressionContext()
to continue the type inference.
- Specified by:
registerInferenceContext in interface Invocation
getInferenceContext
public InferenceContext18 getInferenceContext(ParameterizedMethodBinding method)
- Description copied from interface:
Invocation
- Retrieve an inference context for the given method which must have been registered
using
Invocation.registerInferenceContext(ParameterizedGenericMethodBinding, InferenceContext18).
- Specified by:
getInferenceContext in interface Invocation
- Parameters:
method - an intermediate resolved candidate for this invocation
return a suspended inference context or null if none was registered for this method.
usesInference
public boolean usesInference()
- Description copied from interface:
Invocation
- Answer true if this invocation has determined its binding using inference.
- Specified by:
usesInference in interface Invocation
innersNeedUpdate
public boolean innersNeedUpdate()
- Description copied from interface:
Invocation
- Answer whether the current invocation has inner expressions that still need updating after inference.
- Specified by:
innersNeedUpdate in interface Invocation
innerUpdateDone
public void innerUpdateDone()
- Description copied from interface:
Invocation
- Mark that updating (the need for which is signaled via
Invocation.innersNeedUpdate()) has been done.
- Specified by:
innerUpdateDone in interface Invocation
innerInferenceHelper
public InnerInferenceHelper innerInferenceHelper()
- Description copied from interface:
Invocation
- 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.
- Specified by:
innerInferenceHelper in interface Invocation
freshInferenceContext
public InferenceContext18 freshInferenceContext(Scope scope)
- Description copied from interface:
InvocationSite
- When inference for this invocationSite starts, get a fresh inference context, initialized from this site.
- Specified by:
freshInferenceContext in interface InvocationSite