blob: bc89597e7eb5cb4096d7ba8228f8450c3bd04eec [file] [log] [blame]
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Comparator;
class TestIDEA
{
public static class Test1<Type extends List & Serializable>
{
public void process(Serializable s)
{
}
public void process(Type t)
{
}
}
public static class Test2 extends Test1<ArrayList>
{
public void process(Serializable s)
{
super.process(s);
}
public void process(ArrayList t)
{
super.process(t); // this call is OK resolving to parameterized method in super
}
}
public static void main(String[] args)
{
Test2 test=new Test2();
ArrayList list=new ArrayList();
test.process(list);
test.process((Serializable)list);
}
}
class Key<T> {
Object add(T v) {
return v;
}
}
class WKey<W, T> extends Key<T> {
W add(T v) {
return null;
}
}
class IBug {
public static <W, T> void addItem(WKey<W, T> key, T v) {
key.add(v); // --> demetra draw this in red, see attachment
}
}
//IDEADEV-7698
abstract class Collator implements Comparator<Object> {
public abstract int compare(String source, String target);
public int compare(Object o1, Object o2) {
return compare((String)o1, (String)o2);
}
public void foo(Collator c) {
c.compare("foo", "bar");
}
}
//end of //IDEADEV-7698