/*
 * @test /nodynamiccopyright/
 * @author mcimadamore
 * @bug     6714835
 * @summary Safe cast is rejected (with warning) by javac
 * @compile/fail/ref=T6714835.out -Xlint:unchecked -Werror -XDrawDiagnostics T6714835.java
 */

import java.util.*;

class T6714835 {
    void cast1(Iterable<? extends Integer> x) {
        Collection<? extends Number> x1 = (Collection<? extends Number>)x; //ok
        Collection<? super Integer> x2 = (Collection<? super Integer>)x; //warn
    }

    void cast2(Iterable<? super Number> x) {
        Collection<? super Integer> x1 = (Collection<? super Integer>)x; //ok
        Collection<? extends Number> x2 = (Collection<? extends Number>)x; //warn
    }
}