mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 15:27:45 +07:00
check method signatures equality by erasure; do not check method names for constructors.
note that erasure of type parameter is erasure of its left bound (jls), so erasure (T extends A & B) != erasure (T extends B & A) e.g. IDEA-74409
This commit is contained in:
+13
-2
@@ -16,9 +16,20 @@
|
||||
import java.io.*;
|
||||
class Test {
|
||||
interface InterfA {
|
||||
<error descr="'foo(T)' is already defined in 'Test.InterfA'"><T extends Cloneable & Iterable> void foo(T x)</error>;
|
||||
<T extends Cloneable & Iterable> void foo(T x);
|
||||
|
||||
<error descr="'foo(T)' is already defined in 'Test.InterfA'"><T extends Iterable & Cloneable> void foo(T x)</error>;
|
||||
<T extends Iterable & Cloneable> void foo(T x);
|
||||
}
|
||||
|
||||
class ANotSame {
|
||||
<T extends Cloneable & Iterable> void foo(T x){}
|
||||
|
||||
<T extends Iterable & Cloneable> void foo(T x){}
|
||||
}
|
||||
|
||||
class BNotSame extends ANotSame {
|
||||
@Override
|
||||
<T extends Cloneable & Iterable> void foo(T x){}
|
||||
}
|
||||
|
||||
abstract class A<T extends Throwable> {
|
||||
|
||||
Reference in New Issue
Block a user