// SSA-node classes /////////////////////////////////////////////////////////////////////////////////////////
+ public final Expr VOID_EXPR = new Expr() {
+ public Type getType() { return Type.VOID; }
+ };
+
/** an purely imperative operation which does not generate data */
public abstract class Op {
//public abstract Op[] predecessors(); // not implemented yet
public class Return extends Op {
final Expr e;
- public Return() { this(null); }
+ public Return() { this(VOID_EXPR); }
public Return(Expr e) { this.e = e; }
- public String toString() { return e==null?"return":("return "+e.toString()); }
+ public String toString() { return e.getType() == Type.VOID ? "return" : ("return "+e.toString()); }
}
/** GETFIELD and GETSTATIC */