org.extendj.ast
node type ClassInstanceExpr

General Info

Production
ClassInstanceExpr : Access ::= Access Arg:Expr* [TypeDecl];
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.Expr
              extended by org.extendj.ast.Access
                  extended by org.extendj.ast.ClassInstanceExpr
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
ConstructorReferenceAccess, EnumInstanceExpr, ParClassInstanceExpr

Description

Source
Declared in /home/jesper/git/extendj/java4/grammar/Java.ast at line 34

Member Filters

API level:

Aspect:

Constructors

public ClassInstanceExpr(Access type,
                         List args)
 
Source
Declared in /home/jesper/git/extendj/java4/frontend/NodeConstructors.jrag at line 93
Aspect
NodeConstructors
public ClassInstanceExpr()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public ClassInstanceExpr(Access p0,
                         List<Expr> p1,
                         Opt<TypeDecl> p2)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 15

Attributes

@ASTNodeAnnotation.Attribute
syn boolean isDAafterInstance(org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 462
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean isDAafter(org.extendj.ast.Variable v)
Overrides:isDAafter in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 259
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean computeDAbefore(int i,
                                                    org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 470
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean isDUafterInstance(org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 964
Aspect
DU
@ASTNodeAnnotation.Attribute
syn boolean isDUafter(org.extendj.ast.Variable v)
Overrides:isDUafter in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 783
Aspect
DU
@ASTNodeAnnotation.Attribute
syn boolean computeDUbefore(int i,
                                                    org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 972
Aspect
DU
Overrides:applicableAndAccessible in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag at line 75
Aspect
ConstructScope
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet decls()
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag at line 99
Aspect
ConstructScope
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag at line 104
Aspect
ConstructScope
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet qualifiedLookupType(java.lang.String name)
Overrides:qualifiedLookupType in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 553
Aspect
TypeScopePropagation
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet localLookupType(java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 593
Aspect
TypeScopePropagation
Source
Declared in /home/jesper/git/extendj/java4/frontend/NameCheck.jrag at line 177
Aspect
NameCheck
Returns:
true if there is any printable body decl
Source
Declared in /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag at line 224
Aspect
PrettyPrintUtil
Source
Declared in /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag at line 239
Aspect
PrettyPrintUtil
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.NameType predNameType()
Defines the expected kind of name for the left hand side in a qualified expression.
Overrides:predNameType in class Access
Source
Declared in /home/jesper/git/extendj/java4/frontend/SyntacticClassification.jrag at line 58
Aspect
SyntacticClassification
Overrides:type in class Access
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 302
Aspect
TypeAnalysis
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag at line 603
Aspect
TypeCheck
Source
Declared in /home/jesper/git/extendj/java5/frontend/MethodSignature.jrag at line 547
Aspect
MethodSignature15
Source
Declared in /home/jesper/git/extendj/java5/frontend/VariableArityParameters.jrag at line 79
Aspect
VariableArityParameters
@ASTNodeAnnotation.Attribute
syn boolean modifiedInScope(org.extendj.ast.Variable var)
Overrides:modifiedInScope in class Expr
Source
Declared in /home/jesper/git/extendj/java7/frontend/PreciseRethrow.jrag at line 149
Aspect
PreciseRethrow
Overrides:stmtCompatible in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/LambdaExpr.jrag at line 139
Aspect
StmtCompatible
Overrides:compatibleStrictContext in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodSignature.jrag at line 32
Aspect
MethodSignature18
Overrides:compatibleLooseContext in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodSignature.jrag at line 79
Aspect
MethodSignature18
Overrides:isBooleanExpression in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/PolyExpressions.jrag at line 29
Aspect
PolyExpressions
Overrides:isPolyExpression in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/PolyExpressions.jrag at line 80
Aspect
PolyExpressions
Overrides:assignConversionTo in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/PolyExpressions.jrag at line 142
Aspect
PolyExpressions
Source
Declared in /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag at line 85
Aspect
ExceptionHandling
Overrides:typeObject in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag at line 48
Aspect
ConstructScope
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag at line 113
Aspect
ConstructScope
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag at line 585
Aspect
TypeCheck
Overrides:inExplicitConstructorInvocation in class Access
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeHierarchyCheck.jrag at line 164
Aspect
TypeHierarchyCheck

Methods

public void accessControl()
Overrides:accessControl in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/AccessControl.jrag at line 165
Aspect
AccessControl
public void exceptionHandling()
Overrides:exceptionHandling in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag at line 152
Aspect
ExceptionHandling
protected boolean reachedException(TypeDecl catchType)
Overrides:reachedException in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/ExceptionHandling.jrag at line 340
Aspect
ExceptionHandling
public org.extendj.ast.SimpleSet keepInnerClasses(org.extendj.ast.SimpleSet c)
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 538
Aspect
TypeScopePropagation
Source
Declared in /home/jesper/git/extendj/java4/frontend/NameCheck.jrag at line 186
Aspect
NameCheck
public void prettyPrint(org.jastadd.util.PrettyPrinter out)
Specified by:prettyPrint in interface org.jastadd.util.PrettyPrintableOverrides:prettyPrint in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/PrettyPrint.jadd at line 561
Aspect
Java4PrettyPrint
public void typeCheck()
Overrides:typeCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag at line 509
Aspect
TypeCheck
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag at line 524
Aspect
TypeCheck
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeCheck.jrag at line 606
Aspect
TypeCheck
public void createBCode(org.extendj.ast.CodeGeneration gen)
Overrides:createBCode in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 779
Aspect
CreateBCode
public void addEnclosingVariables()
Source
Declared in /home/jesper/git/extendj/java4/backend/InnerClasses.jrag at line 555
Aspect
InnerClasses
Source
Declared in /home/jesper/git/extendj/java4/backend/Transformations.jrag at line 121
Aspect
Transformations
public void checkModifiers()
Source
Declared in /home/jesper/git/extendj/java5/frontend/Annotations.jrag at line 439
Aspect
Annotations
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 23
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 29
public void flushAttrCache()
Overrides:flushAttrCache in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 35
public void flushCollectionCache()
Overrides:flushCollectionCache in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 54
public void flushRewriteCache()
Overrides:flushRewriteCache in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 60
public ClassInstanceExpr clone()
                        throws java.lang.CloneNotSupportedException
Overrides:clone in class Access
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 66
public ClassInstanceExpr copy()
Overrides:copy in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 73
@Deprecated
public ClassInstanceExpr fullCopy()
Deprecated. Please use treeCopy or treeCopyNoTransform instead

Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.

Specified by:fullCopy in class Access
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 92
public ClassInstanceExpr treeCopyNoTransform()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Specified by:treeCopyNoTransform in class Access
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 102
public ClassInstanceExpr treeCopy()
Create a deep copy of the AST subtree at this node. The subtree of this node is traversed to trigger rewrites before copy. The copy is dangling, i.e. has no parent.
Specified by:treeCopy in class Access
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 122
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 129
public void setAccess(Access node)
Replaces the Access child.
Parameters:
node - The new node to replace the Access child.
Retrieves the Access child.
Returns:
The current node used as the Access child.
Retrieves the Access child.

This method does not invoke AST transformations.

Returns:
The current node used as the Access child.
public void setArgList(List<Expr> list)
Replaces the Arg list.
Parameters:
list - The new list node to be used as the Arg list.
public int getNumArg()
Retrieves the number of children in the Arg list.
Returns:
Number of children in the Arg list.
Retrieves the number of children in the Arg list. Calling this method will not trigger rewrites.
Returns:
Number of children in the Arg list.
public Expr getArg(int i)
Retrieves the element at index i in the Arg list.
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the Arg list.
public boolean hasArg()
Check whether the Arg list has any children.
Returns:
true if it has at least one child, false otherwise.
public void addArg(Expr node)
Append an element to the Arg list.
Parameters:
node - The element to append to the Arg list.
public void addArgNoTransform(Expr node)
public void setArg(Expr node,
                   int i)
Replaces the Arg list element at index i with the new node node.
Parameters:
node - The new node to replace the old list element.
i - The list index of the node to be replaced.
Retrieves the Arg list.
Returns:
The node representing the Arg list.
Retrieves the Arg list.

This method does not invoke AST transformations.

Returns:
The node representing the Arg list.
public List<Expr> getArgs()
Retrieves the Arg list.
Returns:
The node representing the Arg list.
Retrieves the Arg list.

This method does not invoke AST transformations.

Returns:
The node representing the Arg list.
public void setTypeDeclOpt(Opt<TypeDecl> opt)
Replaces the optional node for the TypeDecl child. This is the Opt node containing the child TypeDecl, not the actual child!
Parameters:
opt - The new node to be used as the optional node for the TypeDecl child.
public void setTypeDecl(TypeDecl node)
Replaces the (optional) TypeDecl child.
Parameters:
node - The new node to be used as the TypeDecl child.
public boolean hasTypeDecl()
Check whether the optional TypeDecl child exists.
Returns:
true if the optional TypeDecl child exists, false if it does not.
Retrieves the (optional) TypeDecl child.
Returns:
The TypeDecl child, if it exists. Returns null otherwise.
Retrieves the optional node for the TypeDecl child. This is the Opt node containing the child TypeDecl, not the actual child!
Returns:
The optional node for child the TypeDecl child.
Retrieves the optional node for child TypeDecl. This is the Opt node containing the child TypeDecl, not the actual child!

This method does not invoke AST transformations.

Returns:
The optional node for child TypeDecl.
public void nameCheck()
Overrides:nameCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/Enums.jrag at line 40
Aspect
Enums
public void transformation()
Overrides:transformation in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/backend/VariableArityParametersCodegen.jrag at line 61
Aspect
VariableArityParametersCodegen
public TypeDecl Define_superType(ASTNode caller,
                                 ASTNode child)
Overrides:Define_superType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/AnonymousClasses.jrag at line 33
protected boolean canDefine_superType(ASTNode caller,
                                      ASTNode child)
Overrides:Define_constructorDecl in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/AnonymousClasses.jrag at line 37
protected boolean canDefine_constructorDecl(ASTNode caller,
                                            ASTNode child)
public boolean Define_isDAbefore(ASTNode caller,
                                 ASTNode child,
                                 org.extendj.ast.Variable v)
Overrides:Define_isDAbefore in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 255
protected boolean canDefine_isDAbefore(ASTNode caller,
                                       ASTNode child,
                                       org.extendj.ast.Variable v)
public boolean Define_isDUbefore(ASTNode caller,
                                 ASTNode child,
                                 org.extendj.ast.Variable v)
Overrides:Define_isDUbefore in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 779
protected boolean canDefine_isDUbefore(ASTNode caller,
                                       ASTNode child,
                                       org.extendj.ast.Variable v)
public boolean Define_hasPackage(ASTNode caller,
                                 ASTNode child,
                                 java.lang.String packageName)
Overrides:Define_hasPackage in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 115
protected boolean canDefine_hasPackage(ASTNode caller,
                                       ASTNode child,
                                       java.lang.String packageName)
public org.extendj.ast.SimpleSet Define_lookupType(ASTNode caller,
                                                   ASTNode child,
                                                   java.lang.String name)
Overrides:Define_lookupType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 197
protected boolean canDefine_lookupType(ASTNode caller,
                                       ASTNode child,
                                       java.lang.String name)
public org.extendj.ast.SimpleSet Define_lookupVariable(ASTNode caller,
                                                       ASTNode child,
                                                       java.lang.String name)
Overrides:Define_lookupVariable in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/LookupVariable.jrag at line 30
protected boolean canDefine_lookupVariable(ASTNode caller,
                                           ASTNode child,
                                           java.lang.String name)
public org.extendj.ast.NameType Define_nameType(ASTNode caller,
                                                ASTNode child)
Overrides:Define_nameType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/SyntacticClassification.jrag at line 36
protected boolean canDefine_nameType(ASTNode caller,
                                     ASTNode child)
public boolean Define_isAnonymous(ASTNode caller,
                                  ASTNode child)
Overrides:Define_isAnonymous in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 240
protected boolean canDefine_isAnonymous(ASTNode caller,
                                        ASTNode child)
public boolean Define_isMemberType(ASTNode caller,
                                   ASTNode child)
Overrides:Define_isMemberType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 577
protected boolean canDefine_isMemberType(ASTNode caller,
                                         ASTNode child)
public TypeDecl Define_hostType(ASTNode caller,
                                ASTNode child)
Overrides:Define_hostType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 71
protected boolean canDefine_hostType(ASTNode caller,
                                     ASTNode child)
public boolean Define_inStaticContext(ASTNode caller,
                                      ASTNode child)
Overrides:Define_inStaticContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeHierarchyCheck.jrag at line 182
protected boolean canDefine_inStaticContext(ASTNode caller,
                                            ASTNode child)
Overrides:Define_getClassInstanceExpr in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 90
protected boolean canDefine_getClassInstanceExpr(ASTNode caller,
                                                 ASTNode child)
public boolean Define_isAnonymousDecl(ASTNode caller,
                                      ASTNode child)
Overrides:Define_isAnonymousDecl in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 401
protected boolean canDefine_isAnonymousDecl(ASTNode caller,
                                            ASTNode child)
public TypeDecl Define_targetType(ASTNode caller,
                                  ASTNode child)
Overrides:Define_targetType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 30
protected boolean canDefine_targetType(ASTNode caller,
                                       ASTNode child)
Overrides:Define_assignConvertedType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethodsInference.jrag at line 58
protected boolean canDefine_assignConvertedType(ASTNode caller,
                                                ASTNode child)
public boolean Define_assignmentContext(ASTNode caller,
                                        ASTNode child)
Overrides:Define_assignmentContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 196
protected boolean canDefine_assignmentContext(ASTNode caller,
                                              ASTNode child)
public boolean Define_invocationContext(ASTNode caller,
                                        ASTNode child)
Overrides:Define_invocationContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 197
protected boolean canDefine_invocationContext(ASTNode caller,
                                              ASTNode child)
public boolean Define_castContext(ASTNode caller,
                                  ASTNode child)
Overrides:Define_castContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 198
protected boolean canDefine_castContext(ASTNode caller,
                                        ASTNode child)
public boolean Define_stringContext(ASTNode caller,
                                    ASTNode child)
Overrides:Define_stringContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 199
protected boolean canDefine_stringContext(ASTNode caller,
                                          ASTNode child)
public boolean Define_numericContext(ASTNode caller,
                                     ASTNode child)
Overrides:Define_numericContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 200
protected boolean canDefine_numericContext(ASTNode caller,
                                           ASTNode child)
Overrides:rewriteTo in class Access

Fields

protected boolean addEnclosingVariables
Source
Declared in /home/jesper/git/extendj/java4/backend/InnerClasses.jrag at line 554
Aspect
InnerClasses
protected java.util.Map isDAafterInstance_Variable_values
protected java.util.Map computeDAbefore_int_Variable_values
protected java.util.Map computeDUbefore_int_Variable_values
protected boolean decls_computed
protected org.extendj.ast.SimpleSet decls_value
protected boolean decl_computed
protected java.util.Map localLookupType_String_values
protected boolean type_computed
protected boolean stmtCompatible_computed
protected boolean stmtCompatible_value
protected boolean isBooleanExpression_value
protected boolean isPolyExpression_computed
protected boolean isPolyExpression_value
protected java.util.Map assignConversionTo_TypeDecl_values

Inherited Members

Attributes inherited from org.extendj.ast.Access

Attributes inherited from org.extendj.ast.Expr

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.Access

Methods inherited from class org.extendj.ast.Expr

Methods inherited from class org.extendj.ast.ASTNode

Methods inherited from class beaver.Symbol

getColumn
getEnd
getId
getLine
getStart
makePosition

Methods inherited from class java.lang.Object

equals
finalize
getClass
hashCode
notify
notifyAll
wait
wait
wait

Fields inherited from org.extendj.ast.Access

Fields inherited from org.extendj.ast.Expr

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value