Consider the following:
void test(Map<String, String> map) {
def eSet = map.entrySet()
def eStr = eSet.stream()
def kStr = eStr.map(Map.Entry::getKey)
def kSet = kStr.toSet()
}
The inferred type of "kStr" is Stream<Object> where Stream<String> is expected.

see GROOVY-11259
Consider the following:
The inferred type of "kStr" is
Stream<Object>whereStream<String>is expected.see GROOVY-11259