java.lang.Object | ||
↳ | sun.tools.tree.Node | |
↳ | sun.tools.tree.Expression |
![]() |
WARNING: The contents of this source file are not part of any supported API. Code that depends on them does so at its own risk: they are subject to change or removal without notice.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Check something that might be an AmbiguousName (refman 6.5.2).
| |||||||||||
Check a condition.
| |||||||||||
Check an expression
| |||||||||||
Create a copy of the expression for method inlining
| |||||||||||
The cost of inlining this expression.
| |||||||||||
Check if the expression is known to be equal to a given value.
| |||||||||||
Check if the expression is equal to its default static value
| |||||||||||
Check if the first thing is a constructor invocation
| |||||||||||
See if this expression fits in the given type.
| |||||||||||
This method is deprecated.
(for backward compatibility)
| |||||||||||
Return a
FieldUpdater object to be used in updating the
value of the location denoted by this , which must be an
expression suitable for the left-hand side of an assignment. | |||||||||||
Type checking may assign a more complex implementation
to an innocuous-looking expression (like an identifier).
| |||||||||||
Return a
FieldUpdater object to be used in updating the value of the
location denoted by this , which must be an expression suitable for the
left-hand side of an assignment. | |||||||||||
Return the constant value.
| |||||||||||
Inline.
| |||||||||||
Return true if constant, according to JLS 15.27.
| |||||||||||
Check if the expression cannot be a null reference.
| |||||||||||
Check if the expression must be a null reference.
| |||||||||||
Order the expression based on precedence
| |||||||||||
Print
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Attempt to evaluate this expression.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Check something that might be an AmbiguousName (refman 6.5.2).
A string of dot-separated identifiers might be, in order of preference:
Check a condition. Return a ConditionVars(), which indicates when which variables are set if the condition is true, and which are set if the condition is false.
The cost of inlining this expression. This cost controls the inlining of methods, and does not determine the compile-time simplifications performed by 'inline' and friends.
Check if the expression is known to be equal to a given value. Returns false for any expression other than a literal constant, thus should be called only after simplification (inlining) has been performed.
Check if the expression is equal to its default static value
See if this expression fits in the given type. This is useful because some larger numbers fit into smaller types.
If it is an "int" constant expression, inline it, if necessary, to examine its numerical value. See JLS 5.2 and 15.24.
This method is deprecated.
(for backward compatibility)
Return a FieldUpdater
object to be used in updating the
value of the location denoted by this
, which must be an
expression suitable for the left-hand side of an assignment.
This is used for implementing assignments to private fields for which
an access method is required. Returns null if no access method is
needed, in which case the assignment is handled in the usual way, by
direct access. Only simple assignment expressions are handled here
Assignment operators and pre/post increment/decrement operators are
are handled by 'getUpdater' below.
Called during the checking phase.
Type checking may assign a more complex implementation to an innocuous-looking expression (like an identifier). Return that implementation, or the original expression itself if there is no special implementation.
This appears at present to be dead code, and is not called from within javac. Access to the implementation generally occurs within the same class, and thus uses the underlying field directly.
Return a FieldUpdater
object to be used in updating the value of the
location denoted by this
, which must be an expression suitable for the
left-hand side of an assignment. This is used for implementing the assignment
operators and the increment/decrement operators on private fields that require an
access method, e.g., uplevel from an inner class. Returns null if no access method
is needed.
Called during the checking phase.
Inline. Recursively simplify each child of an expression node, destructively replacing the child with the simplified result. Also attempts to simplify the current node 'this', and returns the simplified result. The name 'inline' is somthing of a misnomer, as these methods are responsible for compile-time expression simplification in general. The 'eval' and 'simplify' methods apply to a single expression node only -- it is 'inline' and 'inlineValue' that drive the simplification of entire expressions.
Return true if constant, according to JLS 15.27. A constant expression must inline away to a literal constant.
Check if the expression cannot be a null reference.
Check if the expression must be a null reference.
Attempt to evaluate this expression. If this expression yields a value, append it to the StringBuffer `buffer'. If this expression cannot be evaluated at this time (for example if it contains a division by zero, a non-constant subexpression, or a subexpression which "refuses" to evaluate) then return `null' to indicate failure. It is anticipated that this method will be called to evaluate concatenations of compile-time constant strings. The call originates from AddExpression#inlineValue(). See AddExpression#inlineValueSB() for detailed comments.