import java.util.Iterator;

class WildcardGenericAndPrivateField {

    private Object field;

    public Iterator<? extends WildcardGenericAndPrivateField> iterator() {
        return null;
    }

    public void methodDoesNotCompile() {
        Iterator<? extends WildcardGenericAndPrivateField> iterator = iterator();
        while ( iterator.hasNext() ) {
            Object o = iterator.next().<error descr="'field' has private access in 'WildcardGenericAndPrivateField'">field</error>;
        }
    }

    public void methodCompiles() {
        Iterator<? extends WildcardGenericAndPrivateField> iterator = iterator();
        while ( iterator.hasNext() ) {
            WildcardGenericAndPrivateField next = iterator.next();
            Object o = next.field;
        }
    }

}
