mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-25 14:25:04 +07:00
new inference: process varargs as separate method candidate/separate phase
(cherry picked from commit fdd6f66268d29bb996a103f69180851b92947d21)
This commit is contained in:
+1
-1
@@ -11,7 +11,7 @@ class Test {
|
||||
}
|
||||
|
||||
static void foo2(final A<? extends Integer> bar) {
|
||||
bar._<error descr="'_(capture<? extends java.lang.Integer>...)' in 'Test.A' cannot be applied to '(java.lang.String)'">("")</error>;
|
||||
bar._<error descr="Cannot resolve method '_(java.lang.String)'">("")</error>;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ public class Sample {
|
||||
<B> B bar(G<B> gb) {return null;}
|
||||
|
||||
void f(G1 g1) {
|
||||
<error descr="Incompatible types. Found: 'B', required: 'Sample.G<java.lang.String>'">G<String> l11 = bar(g1);</error>
|
||||
<error descr="Incompatible types. Found: 'B', required: 'java.lang.String'">String l1 = bar(g1);</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'Sample.G<java.lang.String>'">G<String> l11 = bar(g1);</error>
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String l1 = bar(g1);</error>
|
||||
Object o = bar(g1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
class A<T> {
|
||||
A(T... t) {
|
||||
}
|
||||
|
||||
{
|
||||
A<String> a = new A<>("a", "b");
|
||||
foo(new A<>("", ""));
|
||||
bar(new A<>("", ""));
|
||||
bar(new A<>(get()));
|
||||
//bar(new A<>(get( ), ""));
|
||||
}
|
||||
|
||||
void foo(A<String> s) {}
|
||||
<T> void bar(A<T> s) {}
|
||||
|
||||
<K> K get() {return null;}
|
||||
|
||||
<M> A<M> s(M... m) {
|
||||
return null;
|
||||
}
|
||||
|
||||
{
|
||||
bar(s(get()));
|
||||
bar(s(get(), ""));
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
abstract class Im {
|
||||
public static final Class[] EMPTY_CLASS_ARRAY = new Class[0];
|
||||
public abstract <T> T createProxy(final Class<T> superClass, final Class... otherInterfaces);
|
||||
|
||||
void f(Class<?> implementation, Class rawType, boolean isInterface) {
|
||||
createProxy(implementation, isInterface ? new Class[]{rawType} : EMPTY_CLASS_ARRAY);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
public class Test {
|
||||
class Test {
|
||||
|
||||
interface II {
|
||||
int _();
|
||||
|
||||
Reference in New Issue
Block a user