java.lang.Object | |
↳ | sun.tools.tree.UplevelReference |
A reference from one scope to another. 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 Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
constructor
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Code is being generated for a call to a constructor of
the client class.
| |||||||||||
Code is being generated for a constructor of the client class.
| |||||||||||
the client class
| |||||||||||
the local argument for this reference
| |||||||||||
Get the local field, creating one if necessary.
| |||||||||||
the field allocated in the client for this reference
| |||||||||||
the next reference in the client's list
| |||||||||||
the target of this reference
| |||||||||||
Insert self into a list of references.
| |||||||||||
Tell if this uplevel reference is the up-level "this" pointer
of an inner class.
| |||||||||||
Tells if self precedes the other in the canonical ordering.
| |||||||||||
Tell if my local argument is directly available in this context.
| |||||||||||
As with makeLocalReference(), build a locally-usable reference.
| |||||||||||
Assuming noteReference() is all taken care of,
build an uplevel reference.
| |||||||||||
Process an uplevel reference.
| |||||||||||
Returns a string representation of the object.
| |||||||||||
During the inline phase, call this on a list of references
for which the code phase will later emit arguments.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Code is being generated for a call to a constructor of the client class. Push an argument for the constructor.
Code is being generated for a constructor of the client class. Emit code which initializes the instance.
Get the local field, creating one if necessary. The client class must not be frozen.
Insert self into a list of references. Maintain "isEarlierThan" as an invariant of the list. This is important (a) to maximize stability of signatures, and (b) to allow uplevel "this" parameters to come at the front of every argument list they appear in.
Tell if this uplevel reference is the up-level "this" pointer of an inner class. Such references are treated differently than others, because they affect constructor calls across compilation units.
Tells if self precedes the other in the canonical ordering.
Tell if my local argument is directly available in this context. If not, the uplevel reference will have to be via a class field.
This must be called in a context which is local to the client of the uplevel reference.
As with makeLocalReference(), build a locally-usable reference. Ignore the availability of local arguments; always use a class field.
Assuming noteReference() is all taken care of, build an uplevel reference.
This must be called in a context which is local to the client of the uplevel reference.
Process an uplevel reference. The only decision to make at this point is whether to build a "localField" instance variable, which is done (lazily) when localArgumentAvailable() proves false.
Returns a string representation of the object. In general, the
toString
method returns a string that
"textually represents" this object. The result should
be a concise but informative representation that is easy for a
person to read.
It is recommended that all subclasses override this method.
The toString
method for class Object
returns a string consisting of the name of the class of which the
object is an instance, the at-sign character `@
', and
the unsigned hexadecimal representation of the hash code of the
object. In other words, this method returns a string equal to the
value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
During the inline phase, call this on a list of references for which the code phase will later emit arguments. It will make sure that any "double-uplevel" values needed by the callee are also present at the call site.
If any reference is a "ClientOuterField", it is skipped by this method (and by willCodeArguments). This is because