import java.util.function.IntFunction;
import java.util.function.IntUnaryOperator;
import java.util.function.Supplier;
import java.util.stream.IntStream;
import java.util.stream.Stream;

class Test {

  interface IntStream1 {
    Stream<Integer> map(IntFunction<Integer> mapper);
    IntStream1 map(IntUnaryOperator mapper);

    Stream<Integer> boxed();
  }

  void fooBar(IntStream1 instr){
    Supplier<Stream<Integer>> si = () -> instr.map <error descr="Ambiguous method call: both 'IntStream1.map(IntFunction<Integer>)' and 'IntStream1.map(IntUnaryOperator)' match">((i) -> (( i % 2) == 0) ? i : -i)</error>.boxed();
    System.out.println(si);
    Supplier<Stream<Integer>> si1 = () -> instr.map <error descr="Ambiguous method call: both 'IntStream1.map(IntFunction<Integer>)' and 'IntStream1.map(IntUnaryOperator)' match">(null)</error>.boxed();
    System.out.println(si1);
  }
}

class TestInitial {
  void fooBar(){
    Supplier<Stream<Integer>> si = () -> IntStream.range(0, 20).map((i) -> ((i % 2) == 0) ? i : -i).boxed();
    System.out.println(si);
  }
}


