@Override public boolean eq(TypeData d) { return getName().equals(d.getName()); } }
@Override public int getTypeData(ConstPool cp) { if (fixedType == null) return lowers.get(0).getTypeData(cp); return super.getTypeData(cp); }
@Override public int getTypeTag() { /* If fixedType is null after calling dfs(), then this type is NULL, Uninit, or a basic type. So call getTypeTag() on the first element of lowers. */ if (fixedType == null) return lowers.get(0).getTypeTag(); return super.getTypeTag(); }
protected TypeVar toTypeVar() { return element.toTypeVar(); }
protected TypeVar toTypeVar() { return element.toTypeVar(); }
public static void aastore(TypeData array, TypeData value, ClassPool cp) throws BadBytecode { if (array instanceof AbsTypeVar) if (!value.isNullType()) ((AbsTypeVar)array).merge(ArrayType.make(value)); if (value instanceof AbsTypeVar) if (array instanceof AbsTypeVar) ArrayElement.make(array); // should call value.setType() later. else if (array instanceof ClassName) { if (!array.isNullType()) { String type = ArrayElement.typeName(array.getName()); value.setType(type, cp); } } else throw new BadBytecode("bad AASTORE: " + array); }
public static void aastore(TypeData array, TypeData value, ClassPool cp) throws BadBytecode { if (array instanceof AbsTypeVar) if (!value.isNullType()) ((AbsTypeVar)array).merge(ArrayType.make(value)); if (value instanceof AbsTypeVar) if (array instanceof AbsTypeVar) ArrayElement.make(array); // should call value.setType() later. else if (array instanceof ClassName) { if (!array.isNullType()) { String type = ArrayElement.typeName(array.getName()); value.setType(type, cp); } } else throw new BadBytecode("bad AASTORE: " + array); }
public static void aastore(TypeData array, TypeData value, ClassPool cp) throws BadBytecode { if (array instanceof AbsTypeVar) if (!value.isNullType()) ((AbsTypeVar)array).merge(ArrayType.make(value)); if (value instanceof AbsTypeVar) if (array instanceof AbsTypeVar) ArrayElement.make(array); // should call value.setType() later. else if (array instanceof ClassName) { if (!array.isNullType()) { String type = ArrayElement.typeName(array.getName()); value.setType(type, cp); } } else throw new BadBytecode("bad AASTORE: " + array); }
protected TypeVar toTypeVar() { return array.toTypeVar(); }
protected TypeVar toTypeVar() { return element.toTypeVar(); }
public boolean eq(TypeData d) { return getName().equals(d.getName()); } }
protected TypeVar toTypeVar() { return array.toTypeVar(); }
public String getName() { return typeName(element.getName()); }
public String getName() { return typeName(array.getName()); }
public String getName() { return typeName(element.getName()); }
public void setType(String s, ClassPool cp) throws BadBytecode { array.setType(ArrayType.typeName(s), cp); }
public void setType(String s, ClassPool cp) throws BadBytecode { element.setType(ArrayElement.typeName(s), cp); }
public int getTypeData(ConstPool cp) { return cp.addClassInfo(getName()); }
public void setType(String s, ClassPool cp) throws BadBytecode { array.setType(ArrayType.typeName(s), cp); }
public boolean eq(TypeData d) { return getName().equals(d.getName()); } }