package inference.guava;

import java.util.Iterator;
import java.util.Spliterator;
import java.util.function.Consumer;
import java.util.stream.Stream;

@SuppressWarnings("") // Just check for crashes.
public class Bug6 {
    public static <Q> Iterable<Q> method(final Iterable<Q> iterable) {
        return new Iterable<Q>() {
            @Override
            public Iterator<Q> iterator() {
                throw new RuntimeException();
            }

            @Override
            public void forEach(Consumer<? super Q> action) {
                throw new RuntimeException();
            }

            @Override
            public Spliterator<Q> spliterator() {
                return Stream.generate(() -> iterable).flatMap(Bug6::stream).spliterator();
            }
        };
    }

    public static <Z> Stream<Z> stream(Iterable<Z> iterable) {
        throw new RuntimeException();
    }
}
