blob: c8b4470b51e72462c9e674c33c3a729e62649299 [file] [log] [blame]
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/** @noinspection UnusedDeclaration*/
class GenericsTest98 {
public static void main(String[] args) throws Exception{
List<Movable<? extends Serializable>> list = new ArrayList<Movable<? extends Serializable>> ();
Factory factory = Factory.newInstance();
// Doesn't compile, but Idea doesn't complain
Mover<? extends Serializable> mover = factory.getNew<error descr="'getNew(java.util.List<? extends Movable<T>>)' in 'Factory' cannot be applied to '(java.util.List<Movable<? extends java.io.Serializable>>)'">(list)</error>;
}
}
abstract class Factory {
public static Factory newInstance(){
return null;
}
// This should actually be
// public abstract <T extends Serializable> Mover<T> getNew (List<? extends Movable<? extends T>> source);
public abstract <T extends Serializable> Mover<T> getNew (List<? extends Movable<T>> source);
}
/** @noinspection UnusedDeclaration*/
interface Movable<T extends Serializable> extends Serializable {
}
/** @noinspection UnusedDeclaration*/
interface Mover<T extends Serializable> {
}