il.append(fact.createPop(fromType.getSize()));
il.append(InstructionFactory.createPop(fromType.getSize()));
    public static void appendConversion(        InstructionList il,        InstructionFactory fact,        ResolvedTypeX fromType,        ResolvedTypeX toType)    {        if (! toType.isConvertableFrom(fromType)) {            throw new BCException("can't convert from " + fromType + " to " + toType);        }        if (toType.needsNoConversionFrom(fromType)) return;        if (toType.equals(ResolvedTypeX.VOID)) {            // assert fromType.equals(TypeX.OBJECT)            il.append(fact.createPop(fromType.getSize()));        } else if (fromType.equals(ResolvedTypeX.VOID)) {            // assert toType.equals(TypeX.OBJECT)            il.append(fact.createNull(Type.OBJECT));            return;        } else if (fromType.equals(TypeX.OBJECT)) {            Type to = BcelWorld.makeBcelType(toType);            if (toType.isPrimitive()) {                String name = toType.toString() + "Value";                il.append(                    fact.createInvoke(                        "org.aspectj.runtime.internal.Conversions",                        name,                        to,                        new Type[] { Type.OBJECT },                        Constants.INVOKESTATIC));            } else {                il.append(fact.createCheckCast((ReferenceType)to));            }        } else if (toType.equals(TypeX.OBJECT)) {            // assert fromType.isPrimitive()            Type from = BcelWorld.makeBcelType(fromType);            String name = fromType.toString() + "Object";            il.append(                fact.createInvoke(                    "org.aspectj.runtime.internal.Conversions",                    name,                    Type.OBJECT,                    new Type[] { from },                    Constants.INVOKESTATIC));        } else if (fromType.isPrimitive()) {            // assert toType.isPrimitive()            Type from = BcelWorld.makeBcelType(fromType);            Type to = BcelWorld.makeBcelType(toType);            try {                il.append(fact.createCast(from, to));            } catch (RuntimeException e) {                il.append(fact.createCast(from, Type.INT));                il.append(fact.createCast(Type.INT, to));            }        } else {            Type to = BcelWorld.makeBcelType(toType);            // assert ! fromType.isPrimitive() && ! toType.isPrimitive()            il.append(fact.createCheckCast((ReferenceType) to));        }    }