The GitHub Actions job "CI" on grails-core.git/feat/beans-dsl-diagnostics-8.0.x 
has failed.
Run started by GitHub user codeconsole (triggered by codeconsole).

Head commit for run:
666308814e2856d3e758156a772ea0cab32954ec / Scott Murphy Heiberg 
<[email protected]>
Reject an anonymous class reaching a member that moved to the sibling

On a plugin descriptor the block's members compile onto the generated sibling,
but an anonymous inner class written in a bean body keeps the descriptor as its
outer class - Groovy fixes that when it creates the node and offers no way to
move it. Its MOP dispatch methods then read a this$0 typed as the descriptor
where the field holds the sibling, so an unqualified reference from its body to
one of those members failed with NoSuchFieldError inside a running application,
or under @CompileStatic as a "cannot find matching method" naming a synthetic
class nobody wrote.

Now a compile error, pointed at the reference. The test is narrow enough to be
safe: a name that is both a member this block generated and not resolvable on
the anonymous class itself or anything it inherits. A call to the anonymous
class's own method, or to one from the interface it implements, is untouched -
only names that actually moved cannot be reached. On a non-plugin host nothing
moved, so nothing is checked.

Three tests: the failing shape rejected with the reference named, a
self-contained anonymous class on a descriptor still compiling, and the same
reference on a plain host still working at runtime.

Report URL: https://github.com/apache/grails-core/actions/runs/34269165788

With regards,
GitHub Actions via GitBox

Reply via email to