Hi Marc,
Sorry I've added all my thoughts to the PR and forgot to provide details in email. If briefly:
-) each annotation has a corresponding handler, which has a well-defined interface but quite often when handler A re-uses handler B (where A and B are different lombok annotations). It uses its own slightly modified handler method version.
-) my suggestion is to introduce annotation coupling (via composition), so if annotation A uses annotation C this will be explicitly stated in annotation code (this is what i've tried to show in the PR). Adding such coupling will allow slightly modify handler interface to let the handler know it is handled as standalone or as part of another annotation.
-) potential benefits: this creates nice opportunities to re-use annotations (and thus their corresponding handlers). Example: assume annotation A is an existing lombok annotation which consists of B, C, D annotations (existing as well), its handler A will extract B, C, D parts and delegate calls to their corresponding handlers via public interface instead of some other annotation-specific methods. There is no much improvement window for annotation A, but if you will need to create some new annotations X or Y with composition any of B,C,D in them, handler code will be about single line calls (or smth like that).
Not sure if this explanation is good enough to describe PR. Also not sure PR has enough changes to show efforts needed and potential benefits. To summarize: idea is to simplify handlers re-usability which might give benefits in the long, long run.
Best Regards,
Volodymyr