SymbolicCompleteArrayType.java
package edu.udel.cis.vsl.tass.symbolic.type;
import edu.udel.cis.vsl.tass.symbolic.IF.SymbolicExpressionIF;
import edu.udel.cis.vsl.tass.symbolic.IF.type.SymbolicCompleteArrayTypeIF;
import edu.udel.cis.vsl.tass.symbolic.IF.type.SymbolicTypeIF;
public class SymbolicCompleteArrayType extends SymbolicArrayType implements
SymbolicCompleteArrayTypeIF {
private SymbolicExpressionIF extent;
SymbolicCompleteArrayType(SymbolicTypeIF elementType,
SymbolicExpressionIF extent) {
super(elementType);
assert extent != null;
this.extent = extent;
}
@Override
boolean intrinsicEquals(SymbolicType that) {
if (that instanceof SymbolicCompleteArrayType) {
SymbolicCompleteArrayType arrayType = (SymbolicCompleteArrayType) that;
return super.equals(arrayType) && extent.equals(arrayType.extent);
}
return false;
}
@Override
int intrinsicHashCode() {
return super.hashCode() + extent.hashCode();
}
@Override
public String extentString() {
return "[" + extent + "]";
}
@Override
public SymbolicExpressionIF extent() {
return extent;
}
}