new inference: nested varargs

(cherry picked from commit 0d293e439ffcbe97db98c1a1b8072e798d94323e)
This commit is contained in:
Anna Kozlova
2014-03-11 15:22:18 +01:00
parent 144684ba22
commit 465325a6a6
8 changed files with 79 additions and 5 deletions

View File

@@ -0,0 +1,46 @@
import java.util.List;
abstract class StreamMain {
public abstract <T> Iterable<T> concat(final Iterable<? extends T>... iterables);
public abstract <T> Iterable<T> concat(final List<? extends T>... iterables);
public final List<String> errorFixesToShow = null;
public final List<String> inspectionFixesToShow = null;
void foo() {
exists(concat(errorFixesToShow, inspectionFixesToShow), "");
}
public abstract <T> boolean exists(T[] iterable, T t);
public abstract <T> boolean exists(Iterable<T> iterable, T t);
}
abstract class StreamMainComplexSecendArgument {
public abstract <T> Iterable<T> concat(final Iterable<? extends T>... iterables);
public abstract <T> Iterable<T> concat(final List<? extends T>... iterables);
public final List<String> errorFixesToShow = null;
public final List<String> inspectionFixesToShow = null;
void foo() {
Condition<String> condition = new Condition<String>() {
@Override
public boolean value(String s) {
return false;
}
};
exists(concat(errorFixesToShow, inspectionFixesToShow), condition);
}
public abstract <T> boolean exists(T[] iterable, Condition<T> condition);
public abstract <T> boolean exists(Iterable<T> iterable, Condition<T> condition);
interface Condition<T> {
boolean value(T t);
}
}