overload resolution: don't include constraints on functional expressions into applicability check during overload resolution (IDEA-150745)

This commit is contained in:
Anna Kozlova
2016-01-26 15:07:28 +03:00
parent 8e7c92fce8
commit a035c14d75
5 changed files with 37 additions and 4 deletions

View File

@@ -0,0 +1,27 @@
/*
* Copyright (c) 2016. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
* Vestibulum commodo. Ut rhoncus gravida arcu.
*/
package usages;
import java.util.function.Function;
class Test {
{
valueOf(processFirst(<error descr="no instance(s) of type variable(s) exist so that Integer conforms to char[]">x -> x</error>));
}
public static <V> V processFirst(Function<Integer,V> f){
return f.apply(1);
}
static void valueOf(Object o) {
System.out.println(o);
}
static void valueOf(char[] c) {
System.out.println(c);
}
}

View File

@@ -6,13 +6,13 @@ import java.util.stream.Stream;
class Test {
void foo() {
log(get(TreeSet<String>::new));
log(get(<error descr="Bad return type in method reference: cannot convert java.util.TreeSet<java.lang.String> to C">TreeSet<String>::new</error>));
}
private void <warning descr="Private method 'log(java.lang.String[])' is never used">log</warning>(String params[]) {
private void log(String params[]) {
System.out.println(params);
}
private void log(Object params) {
private void <warning descr="Private method 'log(java.lang.Object)' is never used">log</warning>(Object params) {
System.out.println(params);
}