public static IClass directSuperAmongPrimitiveType(IClass subType) {
        switch(subType.getType().getSort()) {
        case Type.CHAR  : return subType.getClassHolder().getType(int.class);
        case Type.BYTE  : return subType.getClassHolder().getType(short.class);
        case Type.SHORT : return subType.getClassHolder().getType(int.class);
        case Type.INT   : return subType.getClassHolder().getType(long.class);
        case Type.FLOAT : return subType.getClassHolder().getType(double.class);
        case Type.LONG  : return subType.getClassHolder().getType(float.class);
        default : return null;
        }
	}