lambda: fix parameter types comparing order (IDEA-126056)

This commit is contained in:
Anna Kozlova
2014-06-10 12:32:50 +04:00
parent ccdc69a1bf
commit f6a393d527
3 changed files with 32 additions and 1 deletions

View File

@@ -66,7 +66,7 @@ public class LambdaHighlightingUtil {
return lambdaParameter;
}
} else {
if (!TypeConversionUtil.isAssignable(lambdaParameterType, substitutedParamType)) {
if (!TypeConversionUtil.isAssignable(substitutedParamType, lambdaParameterType)) {
return lambdaParameter;
}
}

View File

@@ -0,0 +1,27 @@
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Stream;
class StreamTest {
public class Foo {}
List<? super Foo> all = new ArrayList<>();
void foo(final Predicate<Object> predicate, final Stream<? super Foo> stream){
long the_count= stream.filter((a) -> predicate.test(a)).count();
}
void foo1(final Predicate<Object> predicate, final Stream<? extends Foo> stream){
long the_count= stream.filter((a) -> predicate.test(a)).count();
}
void foo2(final Predicate<Object> predicate, final Stream<Foo> stream){
long the_count= stream.filter((a) -> predicate.test(a)).count();
}
}

View File

@@ -222,6 +222,10 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
doTest();
}
public void testIDEA126056() throws Exception {
doTest();
}
private void doTest() {
doTest(false);
}