Closed
Description
Compiler version
3.4.0-RC1
Minimized code
import javax.annotation.processing.{ AbstractProcessor, RoundEnvironment }
import javax.lang.model.element.{ ElementKind, PackageElement, TypeElement }
import java.util as ju
class P extends AbstractProcessor {
override def process(annotations: ju.Set[? <: TypeElement], roundEnv: RoundEnvironment): Boolean = {
annotations
.stream()
.flatMap(annotation => roundEnv.getElementsAnnotatedWith(annotation).stream())
.filter(element => element.getKind == ElementKind.PACKAGE)
.map(element => element.asInstanceOf[PackageElement])
.toList()
true
}
}
Output
Ambiguous overload. The overloaded alternatives of method getElementsAnnotatedWith in trait RoundEnvironment with types
(x$0: Class[? <: java.lang.annotation.Annotation]):
java.util.Set[? <: javax.lang.model.element.Element]
(x$0: javax.lang.model.element.TypeElement):
java.util.Set[? <: javax.lang.model.element.Element]
both match arguments ((annotation : Nothing))
Expectation
This java interop with Stream APIs worked in 3.3.1 and all versions before. Regressed in 3.4.0-RC1