codeconsole commented on PR #16292:
URL: https://github.com/apache/grails-core/pull/16292#issuecomment-5636109951

   All three addressed in `d5c7bdf`. 364 module tests, checkstyle clean, both 
example projects and all eight in-tree `beans = { }` users green.
   
   **[P2] extension methods on a specific receiver** — set now built from 
`DefaultGroovyMethods.DGM_LIKE_CLASSES` instead of the `Object`-receiver 
entries. Your `join()` shape compiles and returns `hello`. Over-approximation 
accepted for the reason you give, and it is the same trade the closure case 
already makes. Spec row added with a collection-typed superclass.
   
   **[P2] statics of a `@CompileStatic` host** — 
`isStaticallyCompiled(outerClass)` gates it: static methods and fields of the 
enclosing classes and their supertypes are reachable there, reported as before 
on a dynamic host. Your `helper() + SUFFIX` descriptor compiles and returns 
`hello`. The dynamic-host message now names the case and says qualifying with 
the declaring class is the fix. Two spec rows — `@CompileStatic` compiling and 
running, dynamic still rejected on that wording.
   
   **[P3] `answersAnything`** — `invokeMethod`/`getProperty` now count only 
when declared in a class this unit compiles from source (`getModule() != 
null`), so a pre-Groovy-3 library superclass no longer exempts its subclasses. 
`methodMissing`/`propertyMissing` are unchanged, never being generated.
   
   Docs updated in step: "the extension methods every object has" → "Groovy's 
extension methods", plus the static-member case, in both the `GrailsBeans` 
javadoc and the guide NOTE.


-- 
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]

Reply via email to