The {Volatile|}{Int|Double|...|Object}Ref class corresponding to the class cls
,
depending on whether the reference should be @volatile
Transform tree using all transforms of current group (including this one)
Transform tree using all transforms of current group (including this one)
If assignment is to a boxed ref type, e.g.
If assignment is to a boxed ref type, e.g.
intRef.elem = expr
rewrite using a temporary var to
val ev$n = expr intRef.elem = ev$n
That way, we avoid the problem that expr
might contain a try
that would
run on a non-empty stack (which is illegal under JVM rules). Note that LiftTry
has already run before, so such try
s would not be eliminated.
Also: If the ref type lhs is followed by a cast (can be an artifact of nested translation), drop the cast.
Transform single node using all transforms following the current one in this group
Transform single node using all transforms following the current one in this group
Transform subtree using all transforms following the current one in this group
Transform subtree using all transforms following the current one in this group
Throws an UnsupportedOperationException
with the given method name.
Throws an UnsupportedOperationException
with the given method name.