mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 23:39:39 +07:00
java: redundant cast: check inference problems in cast operand
expected type (available after removing type cast) may add bounds for inference variables which would lead to errors after applying the fix GitOrigin-RevId: 24a97411b7175cacabd8e81ed5711509195dfd4d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8d3b5500f9
commit
4b5272c14a
@@ -3,7 +3,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
class Test {
|
||||
private static List<Object> test(List<List> list) {
|
||||
return list.stream().flatMap(List::stream).collect(Collectors.toList());
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.util.List<java.lang.Object>'">return list.stream().flatMap(List::stream).collect(Collectors.toList());</error>
|
||||
}
|
||||
|
||||
private static List<Object> test1(List<List> list) {
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import java.util.function.Function;
|
||||
|
||||
class BadReturnType {
|
||||
public static <T, S> S doIfNotNull(T obj, Function<? super T, ? extends S> function) {
|
||||
return obj == null ? null : function.apply(obj);
|
||||
}
|
||||
|
||||
interface Stub<Psi> {
|
||||
Psi get();
|
||||
}
|
||||
interface MetadataStub<M extends Metadata> extends Stub<M> {}
|
||||
interface Metadata {}
|
||||
|
||||
Metadata m(MetadataStub member){
|
||||
Metadata m = (Metadata) doIfNotNull(member, MetadataStub::get);
|
||||
bar( (Metadata) doIfNotNull(member, metadataStub -> metadataStub.get()));
|
||||
bar( (Metadata) doIfNotNull(member, MetadataStub::get));
|
||||
bar( (<warning descr="Casting 'doIfNotNull(...)' to 'Metadata' is redundant">Metadata</warning>) doIfNotNull (member, null));
|
||||
return (Metadata) doIfNotNull(member, MetadataStub::get);
|
||||
}
|
||||
|
||||
private void bar(Metadata md) { }
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user