codeconsole commented on PR #16292:
URL: https://github.com/apache/grails-core/pull/16292#issuecomment-5647519603
Both, plus the optional note, in `74f7951`. 370 module tests, checkstyle
clean, examples and in-tree `beans = { }` users green.
**[P3] `TypeCheckingMode.SKIP`** — the innermost `@CompileStatic` now
decides by its `value`; a `PropertyExpression` ending in `SKIP` or the folded
constant means dynamic. Your shape is reported with the `static member of an
enclosing class` sentence. Spec row added.
**[P3] missing tests** — added: the three `answersAnything` cases
(`Properties` superclass now reported, own `getProperty` exempt, same-unit
superclass writing `invokeMethod` exempt), and a `@CompileStatic` host reaching
`helper() + SUFFIX` from inside a `group(...)`.
**Receiver-aware extension set** — taken, because the second half of your
note is a live bug, not just tidiness. `method('getText', String)` reached as
`text` compiled clean and failed with `NoSuchFieldError`; `relatedNames`
expands the property read to `getText`, which was in the flat DGM set. Keyed by
receiver now, so a `Runnable` gets the `Object` entries and an `ArrayList`
subclass gets the `Iterable`/`Collection`/`List` ones. One trap worth naming:
`ClassNode.getAllInterfaces()` is transitive over a class's **own** interfaces
and does not climb the superclass chain, so it has to be asked of each
superclass in turn — otherwise the `ArrayList`-subclass row loses `join` again.
Both directions are now pinned.
Classpath extension modules (`NioExtensions`, groovy-datetime) are noted in
the comment rather than handled, as you suggested. Javadoc line reflowed.
Reverting the two changes fails exactly the two new rows, so both are
load-bearing.
--
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]