javac8 annotation processors don't visit parameter annotations

Liam Miller-Cushon cushon at
Wed Mar 5 21:49:25 UTC 2014

There appears to be a javac8 bug that prevents annotation processors from
visiting annotations on parameters. When repeated annotations were
implemented [1][2] the annotation scanners in JavacProcessingEnvironment
and JavacRoundEnvironment were modified and the following override was

public Set<TypeElement> visitExecutable(ExecutableElement e,
Set<TypeElement> p) {
  // Type parameters are not considered to be enclosed by an executable
  scan(e.getTypeParameters(), p);
  return scan(e.getEnclosedElements(), p);

MethodSymbols don't have any enclosed elements, but they do have parameters
(which currently aren't being visited). I think that line was meant to
match the base implementation in ElementScanner:

return scan(e.getParameters(), p);

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the compiler-dev mailing list