org.extendj.ast
node type DiamondAccess

General Info

Production
DiamondAccess : Access ::= TypeAccess:Access;
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.DiamondAccess
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable

Description

Type access for a generic class with an empty type parameter list.
Source
Declared in /home/jesper/git/extendj/java7/grammar/Diamond.ast at line 4

Member Filters

API level:

Aspect:

Constructors

public DiamondAccess()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public DiamondAccess(Access p0)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 13

Attributes

Overrides:type in class Access
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 302
Aspect
TypeAnalysis
Overrides:isDiamond in class Access
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 87
Aspect
Diamond
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 90
Aspect
Diamond
Returns:
true if this access is part of an anonymous class declaration
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 401
Aspect
Diamond
Returns:
true if the Access is part of a generic constructor invocation with explicit type arguments
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 417
Aspect
Diamond

Methods

protected static org.extendj.ast.SimpleSet mostSpecific(org.extendj.ast.SimpleSet maxSpecific,
                                                        MethodDecl decl)
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 94
Aspect
Diamond
protected org.extendj.ast.SimpleSet chooseConstructor()
Choose a constructor for the diamond operator using placeholder methods.
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 112
Aspect
Diamond
protected java.util.Collection<MethodDecl> potentiallyApplicable(List<StandInMethodDecl> candidates)
Select potentially applicable method declarations from a set of candidates. Type inference is applied to the (potentially) applicable candidates.
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 238
Aspect
Diamond
protected boolean potentiallyApplicable(GenericMethodDecl candidate)
Test if a method is applicable for this diamond access.
Parameters:
candidate - candidate method
Returns:
false if the candidate method is not applicable.
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 260
Aspect
Diamond
protected boolean applicableBySubtyping(ClassInstanceExpr expr,
                                        MethodDecl method)
Returns:
true if the method is applicable by subtyping
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 291
Aspect
Diamond
Returns:
true if the method is applicable by method invocation conversion
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 306
Aspect
Diamond
protected boolean applicableByVariableArity(ClassInstanceExpr expr,
                                            MethodDecl method)
Returns:
true if the method is applicable by variable arity
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 323
Aspect
Diamond
public void typeCheck()
Checks if this diamond access is legal. The diamond access is not legal if it either is part of an inner class declaration, if it is used to access a non-generic type, or if it is part of a call to a generic constructor with explicit type arguments.
Overrides:typeCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/Diamond.jrag at line 435
Aspect
Diamond
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/java7/frontend/PrettyPrint.jadd at line 35
Aspect
Java7PrettyPrint
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 19
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 25
public void flushAttrCache()
Overrides:flushAttrCache in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 31
public void flushCollectionCache()
Overrides:flushCollectionCache in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 38
public void flushRewriteCache()
Overrides:flushRewriteCache in class Access
Source
Declared in /home/jesper/git/extendj/ASTNode at line 44
public DiamondAccess clone()
                    throws java.lang.CloneNotSupportedException
Overrides:clone in class Access
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 50
public DiamondAccess copy()
Overrides:copy in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 57
@Deprecated
public DiamondAccess 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 76
public DiamondAccess 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 86
public DiamondAccess 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 106
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 113
public void setTypeAccess(Access node)
Replaces the TypeAccess child.
Parameters:
node - The new node to replace the TypeAccess child.
Retrieves the TypeAccess child.
Returns:
The current node used as the TypeAccess child.
Retrieves the TypeAccess child.

This method does not invoke AST transformations.

Returns:
The current node used as the TypeAccess child.
Overrides:rewriteTo in class Access

Fields

protected boolean type_computed

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