The GitHub Actions job "Code Style" 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:
a0c90c96c17b0f86f1f06ca699c0c08595181ffe / Scott Murphy Heiberg 
<[email protected]>
Stop the sibling-bean check at a nested closure

Found by reading the DSL's own in-tree users for exactly this: 
DataBindingGrailsPlugin
builds its registry with `new DefaultDataBindingSourceRegistry().tap { ... 
initialize() }`.

Inside a closure an unqualified call is resolved against the delegate - tap and
with are delegate-first - so that call reaches the registry, not the
configuration class. The AST records implicit-this either way, so the check as
written could not tell the two apart, and would have rejected working code the
moment a bean in the same block shared a name with a method on some delegate.
Rejecting valid code is a much worse failure than missing an invalid case, and
that plugin is one grep away from being the first casualty.

So the walk stops at a nested closure. The call that motivated the check -
`otherBean()` used directly to build this bean - is a statement in the body and
is still caught; what is given up is the rare sibling call written inside a
nested closure, which is worth it.

The regression test uses that exact shape, with a bean deliberately named
`initialize` so the check has something to match on.

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

With regards,
GitHub Actions via GitBox

Reply via email to