codeconsole commented on PR #16292:
URL: https://github.com/apache/grails-core/pull/16292#issuecomment-5615677536
All items from both rounds are addressed. 9 commits, 361 module tests (was
313), each fix confirmed to fail with it backed out. `checkstyleMain`, all
eight in-tree `beans = { }` users, and both `beans-dsl` example projects green.
**Round 1**
| Item | Status |
|---|---|
| 1. nested-closure re-homing regression | fixed (your call), and the walk
now stops at closures in `0c25aef` too |
| 2. `group(...)` under `@CompileStatic` | `67d20dc`, `55fa461`, `5615328` |
| 3. descriptor anon reaching `method(...)`/`field(...)` | `6663088`,
widened in `b952b27`, `c4546d2` |
| 4. shared-name validation for the new forms | fixed (your call) |
| 5. dumpdir property | guide fixed (your call); the javadoc still carried
the `-D` form and no absolute-path caveat — `b952b27` |
**Round 2**
| Item | Status |
|---|---|
| 1. `@CompileStatic` descriptor anon `GroovyBugError` | `67d20dc` sets the
enclosing method; `55fa461` covers a nested closure; `5615328` a parameter
default |
| 2. group anon reaching outward | `191830e`; `c4546d2` covers a parameter
default and a class nested in another |
| 3. property-style access to a moved accessor | `635f284`; `4fe4570` adds
`this.suffix()`, `this.suffix`, and `getSuffix()` against a moved property or
field |
Six further gaps in the same code paths, found while completing the above
and each reproduced first:
- `this$0` is retyped to the sibling, so a member the **descriptor itself**
declares, or one inherited from `Plugin`, failed identically and was not
reported. Both host kinds now use one rule: anything the class cannot answer
itself. `b952b27`
- That rule rejected every `DefaultGroovyMethods` extension inside a group —
`println`, `with`, `tap`, `identity`. Those resolve against the instance and
never read `this$0`. `b952b27`
- A reference in an anonymous class **field initializer** was invisible to
the check. `4fe4570`
- A parameter default was re-homed but not reach-checked. `c4546d2`
- `sb.tap { append(x) }` inside an anonymous class body was rejected — the
delegate-first shape you filed in round 1, in the other walk. `0c25aef`
- `this.tag` was rejected for an **inherited** field while bare `tag` was
not; `getFields()` is declared-only. `0c25aef`
Also corrected: the javadoc said a `.staticMethod()` bean "cannot carry" an
anonymous class (only one written directly in its body is rejected), and that
the dump writes one file per host class (a group writes its own).
Not changed, and worth your view if you disagree: duplicate names across a
`group(...)` boundary are not compared. Two `@Bean` methods of one name on two
configuration classes is a loud `BeanDefinitionOverrideException` under Boot
rather than the silent first-wins drop the check exists for, and a group
carries the discriminating condition.
CI: the two reds are `EndToEndSpec > async multiple levels of layouts` and
`UserControllerSpec > User list`, both on #16030 against `8.0.x` itself at 2%
and 3%.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]