org.extendj.ast
node type LambdaExpr

General Info

Production
LambdaExpr : Expr ::= LambdaParameters LambdaBody;
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.LambdaExpr
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable

Description

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

Member Filters

API level:

Aspect:

Constructors

public LambdaExpr()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public LambdaExpr(LambdaParameters p0,
                  LambdaBody p1)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 13

Attributes

@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
Source
Declared in /home/jesper/git/extendj/java8/frontend/LambdaExpr.jrag at line 40
Aspect
LambdaExpr
Source
Declared in /home/jesper/git/extendj/java8/frontend/LambdaExpr.jrag at line 43
Aspect
LambdaExpr
Source
Declared in /home/jesper/git/extendj/java8/frontend/LambdaExpr.jrag at line 68
Aspect
LambdaExpr
Source
Declared in /home/jesper/git/extendj/java8/frontend/LambdaExpr.jrag at line 69
Aspect
LambdaExpr
@ASTNodeAnnotation.Attribute
syn boolean congruentTo(org.extendj.ast.FunctionDescriptor f)
Source
Declared in /home/jesper/git/extendj/java8/frontend/LambdaExpr.jrag at line 108
Aspect
LambdaExpr
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
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 142
Aspect
TargetType
Specified by:type in class Expr
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeCheck.jrag at line 55
Aspect
TypeCheck
Source
Declared in /home/jesper/git/extendj/java8/backend/LambdaToClass.jrag at line 32
Aspect
LambdaToClass
Source
Declared in /home/jesper/git/extendj/java8/frontend/EnclosingLambda.jrag at line 38
Aspect
EnclosingLambda

Methods

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/java8/frontend/PrettyPrint.jadd at line 64
Aspect
Java8PrettyPrint
public void typeCheck()
Overrides:typeCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeCheck.jrag at line 115
Aspect
TypeCheck
public void createBCode(org.extendj.ast.CodeGeneration gen)
Overrides:createBCode in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/backend/CreateBCode.jrag at line 29
Aspect
Java8CreateBCode
public void transformation()
Overrides:transformation in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/backend/Transformations.jrag at line 29
Aspect
Transformations
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 20
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 26
public void flushAttrCache()
Overrides:flushAttrCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 32
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 LambdaExpr 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
public LambdaExpr copy()
Overrides:copy in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 73
@Deprecated
public LambdaExpr 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 92
public LambdaExpr 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 102
public LambdaExpr 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 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
Replaces the LambdaParameters child.
Parameters:
node - The new node to replace the LambdaParameters child.
Retrieves the LambdaParameters child.
Returns:
The current node used as the LambdaParameters child.
Retrieves the LambdaParameters child.

This method does not invoke AST transformations.

Returns:
The current node used as the LambdaParameters child.
public void setLambdaBody(LambdaBody node)
Replaces the LambdaBody child.
Parameters:
node - The new node to replace the LambdaBody child.
Retrieves the LambdaBody child.
Returns:
The current node used as the LambdaBody child.
Retrieves the LambdaBody child.

This method does not invoke AST transformations.

Returns:
The current node used as the LambdaBody child.
public boolean Define_inhModifiedInScope(ASTNode caller,
                                         ASTNode child,
                                         org.extendj.ast.Variable var)
Overrides:Define_inhModifiedInScope in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/EffectivelyFinal.jrag at line 30
protected boolean canDefine_inhModifiedInScope(ASTNode caller,
                                               ASTNode child,
                                               org.extendj.ast.Variable var)
Overrides:Define_enclosingLambda in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/EnclosingLambda.jrag at line 37
protected boolean canDefine_enclosingLambda(ASTNode caller,
                                            ASTNode child)
public org.extendj.ast.FinallyHost Define_enclosingFinally(ASTNode caller,
                                                           ASTNode child,
                                                           Stmt branch)
Overrides:Define_enclosingFinally in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 262
protected boolean canDefine_enclosingFinally(ASTNode caller,
                                             ASTNode child,
                                             Stmt branch)
public Stmt Define_branchTarget(ASTNode caller,
                                ASTNode child,
                                Stmt branch)
Overrides:Define_branchTarget in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 227
protected boolean canDefine_branchTarget(ASTNode caller,
                                         ASTNode child,
                                         Stmt branch)
public org.extendj.ast.SimpleSet Define_otherLocalClassDecls(ASTNode caller,
                                                             ASTNode child,
                                                             java.lang.String name)
Overrides:Define_otherLocalClassDecls in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/NameCheck.jrag at line 524
protected boolean canDefine_otherLocalClassDecls(ASTNode caller,
                                                 ASTNode child,
                                                 java.lang.String name)
public boolean Define_handlesException(ASTNode caller,
                                       ASTNode child,
                                       TypeDecl exceptionType)
Overrides:Define_handlesException in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/TryWithResources.jrag at line 113
protected boolean canDefine_handlesException(ASTNode caller,
                                             ASTNode child,
                                             TypeDecl exceptionType)
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.VariableScope Define_outerScope(ASTNode caller,
                                                       ASTNode child)
Overrides:Define_outerScope in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/NameCheck.jrag at line 30
protected boolean canDefine_outerScope(ASTNode caller,
                                       ASTNode child)
public TypeDecl Define_unknownType(ASTNode caller,
                                   ASTNode child)
Overrides:Define_unknownType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeCheck.jrag at line 31
protected boolean canDefine_unknownType(ASTNode caller,
                                        ASTNode child)
public boolean Define_leavesMonitor(ASTNode caller,
                                    ASTNode child,
                                    Stmt branch,
                                    SynchronizedStmt monitor)
Overrides:Define_leavesMonitor in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1836
protected boolean canDefine_leavesMonitor(ASTNode caller,
                                          ASTNode child,
                                          Stmt branch,
                                          SynchronizedStmt monitor)
Overrides:rewriteTo in class Expr
public org.extendj.ast.SimpleSet lookupVariable(java.lang.String name)

Fields

protected boolean arity_computed
protected int arity_value
protected boolean numParameters_computed
protected int numParameters_value
protected boolean isImplicit_computed
protected boolean isImplicit_value
protected boolean isExplicit_computed
protected boolean isExplicit_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 toClass_computed
protected boolean enclosingLambda_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