I have a project using build-time AspectJ to apply "around" advice to a method. The AspectJ compiler renames/mangles the original method name (e.g., from "method" to "method_aroundBody0"), changes it to static and passes the instance var as the first parameter, adds the Synthetic class attribute, and creates a new method with the original name that does before/after logic and ultimately delegates to the new "method_aroundBody0" method. Of course, the Synthetic class attribute means that JaCoCo ignores execution data for that method.
The behaviors of AspectJ and JaCoCo seem reasonable in isolation, but their interaction is unhelpful. What can we do about this situation? If the AspectJ compiler added metadata so JaCoCo could know that a method is renamed, would it be acceptable to read that metadata in the analyzer? Other thoughts?