java.lang.Object | |
↳ | sun.tools.tree.Vset |
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create an empty Vset.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Add in the definite assignment bits of another vset,
but join the definite unassignment bits.
| |||||||||||
Note that a var is definitely assigned.
| |||||||||||
Note that a var is definitely un-assigned.
| |||||||||||
Replace canonical DEAD_END with a distinct but
equivalent Vset.
| |||||||||||
Retract any assertion about the var.
| |||||||||||
Create an copy of the given Vset.
| |||||||||||
Construct a vset consisting of the DA bits of the first argument
and the DU bits of the second argument.
| |||||||||||
Ask if this is a vset for a dead end.
| |||||||||||
Ask if this is a vset for a dead end.
| |||||||||||
Join with another vset.
| |||||||||||
Remove variables from the vset that are no longer part of
a context.
| |||||||||||
Ask if a var is definitely assigned.
| |||||||||||
Ask if a var is definitely un-assigned.
| |||||||||||
Returns a string representation of the object.
| |||||||||||
Return one larger than the highest bit set.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Create an empty Vset.
Add in the definite assignment bits of another vset, but join the definite unassignment bits. This unusual operation is used only for 'finally' blocks. The original vset 'this' is destroyed by this operation. (Part of fix for 4068688.)
Note that a var is definitely un-assigned. (Side-effecting.)
Replace canonical DEAD_END with a distinct but equivalent Vset. The bits are unaltered, but the result does not answer true to 'isDeadEnd'.
Used mostly for error recovery, but see 'IfStatement.check', where it is used to implement the special-case treatment of statement reachability for such statements.
Retract any assertion about the var. This operation is ineffective on a dead-end. (Side-effecting.)
Construct a vset consisting of the DA bits of the first argument and the DU bits of the second argument. This is a higly unusual operation, as it implies a case where the flowgraph for DA analysis differs from that for DU analysis. It is only needed for analysing 'try' blocks. The result is a dead-end iff the first argument is dead-end. (Part of fix for 4068688.)
Ask if this is a vset for a dead end. Answer true only for the canonical dead-end, DEAD_END. A canonical dead-end is produced only as a result of a statement that cannot complete normally, as specified by the JLS. Due to the special-case rules for if-then and if-then-else, this may fail to detect actual unreachable code that could easily be identified.
Ask if this is a vset for a dead end. Answer true for any dead-end. Since 'clearDeadEnd' has no effect on this predicate, if-then and if-then-else are handled in the more 'obvious' and precise way. This predicate is to be preferred for dead code elimination purposes. (Presently used in workaround for bug 4173473 in MethodExpression.java)
Remove variables from the vset that are no longer part of a context. Zeroes are stored past varNumber. (Side-effecting.)
However, if this is a dead end, keep it so. That is, leave an infinite tail of bits set.
Ask if a var is definitely assigned.
Ask if a var is definitely un-assigned. (This is not just the negation of testVar: It's possible for neither to be true.)
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())
Return one larger than the highest bit set.