package x10.wala.ssa;
import java.util.Collection;
import java.util.Collections;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSAInstructionFactory;
import com.ibm.wala.ssa.SymbolTable;
public class HereInstruction extends SSAInstruction {
private final int retValue;
public HereInstruction(int retValue) {
this.retValue= retValue;
}
public SSAInstruction copyForSSA(SSAInstructionFactory insts, int[] defs, int[] uses) {
return ((AstX10InstructionFactory)insts).Here(defs != null ? defs[0] : retValue);
}
public String toString(SymbolTable symbolTable) {
return getValueString(symbolTable, getDef()) + " = here()";
}
public void visit(IVisitor v) {
((AstX10InstructionVisitor) v).visitHere(this);
}
public int hashCode() {
return 413771901 * retValue;
}
public Collection getExceptionTypes() {
return Collections.EMPTY_SET;
}
public boolean isFallThrough() {
return true;
}
public int getNumberOfDefs() {
return 1;
}
public int getDef() {
return retValue;
}
public int getDef(int i) {
Assertions.productionAssertion(i == 0);
return retValue;
}
}