Eclipse не может вывести правильный тип из потока java 8

Следующий код отлично работает во всех онлайн-компиляторах java, но eclipse генерирует ошибку компилятора. Это ошибка в затмении или я где-то не хватает какой-то настройки? Простое исправление, чтобы заставить замолчать затмение? онлайн: https://ideone.com/l0bbhz. Примечание. Это упрощенный подготовленный пример, чтобы просто указать на проблему. Я понимаю, что flatMap в этом случае не требуется. В самом деле мне действительно нужно flatMap

package dummy;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import static java.util.stream.Collectors.toList;

public class LearnJava {

    public static void main(String[] args) {
        String[] sa = {"ne", "two", "three"};
        List<String> l = Arrays.stream(sa)
                .flatMap(s -> Collections.singleton(s).stream().map(c -> c.toUpperCase()))
                .collect(toList());
        System.out.println(l.get(0));
    }

}

Ошибка в консоли eclipse.

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Type mismatch: cannot convert from List<Object> to List<String>

    at dummy.LearnJava.main(LearnJava.java:13)

Моя версия затмения:

Eclipse Java EE IDE для веб-разработчиков.

Версия: Luna Service Release 2 (4.4.2) Идентификатор сборки: 20150219-0600


Обновление. Я пошел с этим небольшим обходным решением. Он работает без большого рефакторинга!

.flatMap(s -> Collections.singleton(s).stream().map(c -> c.toUpperCase()))

Для

.<String>flatMap(s -> Collections.singleton(s).stream().map(c -> c.toUpperCase()))

Ответ 1

Компилятор Eclipse не идеален. Иногда вы сталкиваетесь с такими проблемами, как this. Например, в настоящее время существует две ошибки, связанные с flatMap и тип помех - 482664 и 502158.

Если вы считаете, что код является законным, то это очень важно, когда javac компилирует его без проблем, тогда вы должны открыть ошибку и опубликовать фрагмент там, чтобы сообщить им об этом. Это помогает улучшить компилятор.