public String getName() { return type.getName(); }
public String getName() { if (fixedType == null) return ((TypeData)lowers.get(0)).getName(); else return fixedType; }
@Override public String getName() { return type.getName(); }
public boolean eq(TypeData d) { return name.equals(d.getName()); }
@Override public String getName() { if (fixedType == null) return lowers.get(0).getName(); return fixedType; }
@Override public boolean eq(TypeData d) { return name.equals(d.getName()); }
public boolean eq(TypeData d) { return getName().equals(d.getName()); } }
private void fixTypes1(ArrayList scc, TypeData kind) throws NotFoundException { int size = scc.size(); for (int i = 0; i < size; i++) { TypeVar cv = (TypeVar)scc.get(i); TypeData kind2 = kind.getArrayType(-cv.dimension); if (kind2.isBasicType() == null) cv.fixedType = kind2.getName(); else { cv.lowers.clear(); cv.lowers.add(kind2); cv.is2WordType = kind2.is2WordType(); } } }
@Override public boolean eq(TypeData d) { return getName().equals(d.getName()); } }
private void fixTypes1(List<TypeData> scc, TypeData kind) throws NotFoundException { int size = scc.size(); for (int i = 0; i < size; i++) { TypeVar cv = (TypeVar)scc.get(i); TypeData kind2 = kind.getArrayType(-cv.dimension); if (kind2.isBasicType() == null) cv.fixedType = kind2.getName(); else { cv.lowers.clear(); cv.lowers.add(kind2); cv.is2WordType = kind2.is2WordType(); } } }
lowersSet.add(d.getName());
public static TypeData make(TypeData array) throws BadBytecode { if (array instanceof ArrayType) return ((ArrayType)array).elementType(); else if (array instanceof AbsTypeVar) return new ArrayElement((AbsTypeVar)array); else if (array instanceof ClassName) if (!array.isNullType()) return new ClassName(typeName(array.getName())); throw new BadBytecode("bad AASTORE: " + array); }
static TypeData make(TypeData element) throws BadBytecode { if (element instanceof ArrayElement) return ((ArrayElement)element).arrayType(); else if (element instanceof AbsTypeVar) return new ArrayType((AbsTypeVar)element); else if (element instanceof ClassName) if (!element.isNullType()) return new ClassName(typeName(element.getName())); throw new BadBytecode("bad AASTORE: " + element); }
lowersSet.add(d.getName());
public static TypeData make(TypeData array) throws BadBytecode { if (array instanceof ArrayType) return ((ArrayType)array).elementType(); else if (array instanceof AbsTypeVar) return new ArrayElement((AbsTypeVar)array); else if (array instanceof ClassName) if (!array.isNullType()) return new ClassName(typeName(array.getName())); throw new BadBytecode("bad AASTORE: " + array); }
static TypeData make(TypeData element) throws BadBytecode { if (element instanceof ArrayElement) return ((ArrayElement)element).arrayType(); else if (element instanceof AbsTypeVar) return new ArrayType((AbsTypeVar)element); else if (element instanceof ClassName) if (!element.isNullType()) return new ClassName(typeName(element.getName())); throw new BadBytecode("bad AASTORE: " + element); }
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 String getName() { if (fixedType == null) return ((TypeData)lowers.get(0)).getName(); else return fixedType; }
private String evalExpectedType2(ArrayList equiv, int n) throws BadBytecode { String origName = null; for (int i = 0; i < n; i++) { TypeData td = (TypeData)equiv.get(i); if (!td.isNullType()) if (origName == null) origName = td.getName(); else if (!origName.equals(td.getName())) return null; } return origName; }