@Override public void merge(TypeData t) { try { if (!t.isNullType()) { array.merge(ArrayType.make(t)); } } catch (org.hotswap.agent.javassist.bytecode.BadBytecode e) { // never happens throw new RuntimeException("fatal: " + e); } }
public static void aastore( TypeData array, TypeData value, org.hotswap.agent.javassist.ClassPool cp) throws org.hotswap.agent.javassist.bytecode.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 org.hotswap.agent.javassist.bytecode.BadBytecode("bad AASTORE: " + array); } } }
@Override public int dfs(ArrayList<TypeVar> order, int index, org.hotswap.agent.javassist.ClassPool cp) throws org.hotswap.agent.javassist.NotFoundException { return array.dfs(order, index, cp); }
@Override protected TypeVar toTypeVar() { return array.toTypeVar(); }
@Override public void setType(String s, org.hotswap.agent.javassist.ClassPool cp) throws org.hotswap.agent.javassist.bytecode.BadBytecode { array.setType(ArrayType.typeName(s), cp); }
@Override public String getName() { return typeName(array.getName()); }
@Override protected TypeVar toTypeVar() { return element.toTypeVar(); }
@Override public String getName() { return typeName(element.getName()); }