// Test case for issue #979:
// https://github.com/typetools/checker-framework/issues/979

// @skip-test until the bug is fixed

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.checkerframework.checker.nullness.qual.Nullable;

public class CollectorsToList {

    void m(List<String> strings) {
        Stream<String> s = strings.stream();

        // This works:
        List<String> collectedStrings1 = s.collect(Collectors.<String>toList());
        // This works:
        List<@Nullable String> collectedStrings2 = s.collect(Collectors.toList());
        // This works:
        @SuppressWarnings("nullness")
        List<String> collectedStrings3 = s.collect(Collectors.toList());

        // This assignment issues a warning due to incompatible types:
        List<String> collectedStrings = s.collect(Collectors.toList());

        collectedStrings.forEach(System.out::println);
    }
}
