java: redundant cast: preserve exact types for functional expressions

otherwise we may loose serialization or miss compilation errors in lambda body

GitOrigin-RevId: 180e0ee713a19c42abecf1228616bbd6754ea3b8
This commit is contained in:
Anna Kozlova
2020-05-15 08:33:44 +00:00
committed by intellij-monorepo-bot
parent a9c09d9c09
commit 2bc23faf05
3 changed files with 39 additions and 18 deletions
@@ -0,0 +1,15 @@
import java.util.Collection;
import java.util.function.Consumer;
import java.util.function.Function;
abstract class NestedLambda {
abstract <T, V> V[] map2Array(Collection<? extends T> collection, Class<V> aClass, Function<? super T, ? extends V> mapper);
void m(Collection<String> methods) {
Object[] r = map2Array(methods, Consumer.class, method -> (Consumer<Integer>) resolveResult -> {
int i = resolveResult.intValue();
});
Object[] r1 = map2Array(methods, Consumer.class, method -> (<warning descr="Casting 'resolveResult -> {...}' to 'Consumer' is redundant">Consumer</warning>) resolveResult -> { });
}
}