org.extendj.ast
node type MethodReference

General Info

Production
MethodReference : Expr ::= TypeArgument:Access* <ID:String>;
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.MethodReference
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
AmbiguousMethodReference, ExprMethodReference, TypeMethodReference

Description

Source
Declared in /home/jesper/git/extendj/java8/grammar/MethodReference.ast at line 1

Member Filters

API level:

Aspect:

Constructors

public MethodReference()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public MethodReference(List<Access> p0,
                       java.lang.String p1)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 14
public MethodReference(List<Access> p0,
                       beaver.Symbol p1)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 18

Attributes

@ASTNodeAnnotation.Attribute
syn boolean congruentTo(org.extendj.ast.FunctionDescriptor f)
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodReference.jrag at line 212
Aspect
MethodReference
@ASTNodeAnnotation.Attribute
syn java.util.ArrayList<MethodDecl> potentiallyApplicableMethods(org.extendj.ast.FunctionDescriptor f)
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodReference.jrag at line 253
Aspect
MethodReference
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodReference.jrag at line 308
Aspect
MethodReference
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodReference.jrag at line 307
Aspect
MethodReference
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
@ASTNodeAnnotation.Attribute
syn boolean pertinentToApplicability(Expr access,
                                                             BodyDecl decl,
                                                             int argIndex)
Overrides:pertinentToApplicability in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodSignature.jrag at line 107
Aspect
MethodSignature18
Computes which type is more specific for a specific argument, as defined in 15.12.2.5
Overrides:moreSpecificThan in class Expr
Parameters:
type1 -
type2 -
Returns:
true if type1 is more specific than type2, false otherwise
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodSignature.jrag at line 233
Aspect
MethodSignature18
Overrides:potentiallyCompatible in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodSignature.jrag at line 466
Aspect
MethodSignature18
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
@ASTNodeAnnotation.Attribute
syn java.lang.String name()
Source
Declared in /home/jesper/git/extendj/java8/frontend/QualifiedNames.jrag at line 30
Aspect
Names
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 152
Aspect
TargetType
Specified by:type in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeCheck.jrag at line 75
Aspect
TypeCheck
Source
Declared in /home/jesper/git/extendj/java8/backend/MethodReferenceToClass.jrag at line 82
Aspect
MethodReferenceToClass
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodReference.jrag at line 30
Aspect
MethodReference

Methods

public void nameCheck()
Overrides:nameCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/NameCheck.jrag at line 512
Aspect
Java8NameCheck
public void typeCheck()
Overrides:typeCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeCheck.jrag at line 227
Aspect
TypeCheck
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 25
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 31
public void flushAttrCache()
Overrides:flushAttrCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 37
public void flushCollectionCache()
Overrides:flushCollectionCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 54
public void flushRewriteCache()
Overrides:flushRewriteCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 60
public MethodReference clone()
                      throws java.lang.CloneNotSupportedException
Overrides:clone in class Expr
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 66
@Deprecated
public abstract MethodReference 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 Expr
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 77
public abstract MethodReference 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 Expr
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 85
public abstract MethodReference 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 Expr
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 93
public void setTypeArgumentList(List<Access> list)
Replaces the TypeArgument list.
Parameters:
list - The new list node to be used as the TypeArgument list.
public int getNumTypeArgument()
Retrieves the number of children in the TypeArgument list.
Returns:
Number of children in the TypeArgument list.
Retrieves the number of children in the TypeArgument list. Calling this method will not trigger rewrites.
Returns:
Number of children in the TypeArgument list.
public Access getTypeArgument(int i)
Retrieves the element at index i in the TypeArgument list.
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the TypeArgument list.
public boolean hasTypeArgument()
Check whether the TypeArgument list has any children.
Returns:
true if it has at least one child, false otherwise.
public void addTypeArgument(Access node)
Append an element to the TypeArgument list.
Parameters:
node - The element to append to the TypeArgument list.
public void setTypeArgument(Access node,
                            int i)
Replaces the TypeArgument 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 TypeArgument list.
Returns:
The node representing the TypeArgument list.
Retrieves the TypeArgument list.

This method does not invoke AST transformations.

Returns:
The node representing the TypeArgument list.
Retrieves the TypeArgument list.
Returns:
The node representing the TypeArgument list.
Retrieves the TypeArgument list.

This method does not invoke AST transformations.

Returns:
The node representing the TypeArgument list.
public void setID(java.lang.String value)
Replaces the lexeme ID.
Parameters:
value - The new value for the lexeme ID.
public void setID(beaver.Symbol symbol)
JastAdd-internal setter for lexeme ID using the Beaver parser.
Parameters:
symbol - Symbol containing the new value for the lexeme ID
@ASTNodeAnnotation.Token(name="ID")
public java.lang.String getID()
Retrieves the value for the lexeme ID.
Returns:
The value for the lexeme ID.
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)
Overrides:rewriteTo in class Expr

Fields

protected java.lang.String tokenString_ID
public int IDstart
public int IDend
protected boolean isExact_computed
protected boolean isExact_value
protected boolean isPolyExpression_computed
protected boolean isPolyExpression_value
protected java.util.Map assignConversionTo_TypeDecl_values
protected boolean targetInterface_computed
protected boolean type_computed
protected boolean toParameterList_computed

Inherited Members

Attributes inherited from org.extendj.ast.Expr

Attributes inherited from org.extendj.ast.ASTNode

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.Expr

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value