glb: ensure each super class processed once (IDEA-176779)

This commit is contained in:
Anna.Kozlova
2017-10-16 19:50:59 +02:00
parent 465458db4d
commit bffca304b9
3 changed files with 69 additions and 24 deletions

View File

@@ -0,0 +1,33 @@
import java.util.List;
import java.util.stream.Stream;
class LeastUpperBoundTest {
void f(Stream<Klass> klasses) {
klasses.flatMap(d -> concat(Stream.of(d),
d.getMethods().stream(),
d.getMethods().stream()));
}
@SafeVarargs
private static <T> Stream<T> concat(Stream<? extends T>... streams) {
return null;
}
}
interface Node {}
interface A<T extends Node> {}
interface B<T extends Node> {}
interface C<T extends Node> {}
interface D<T extends Node> {}
interface E<T extends Node> {}
interface E1<T extends Node> {}
interface E2<T extends Node> {}
class Klass implements Node, A<Klass>, B<Klass>, C<Klass>, D<Klass>, E<Klass>, E1<Klass> {
public List<Method> getMethods() {
return null;
}
}
class Method implements Node, A<Method>, B<Method>, C<Method>, D<Method>, E<Method>, E1<Method> {}