paulk-asert commented on PR #2740:
URL: https://github.com/apache/groovy/pull/2740#issuecomment-5099648237

   AI read of differences, others don't seem to matter:
   
   >  Bucket 4a — Java9.class in the grooid jar · the one genuine semantic 
divergence
   > 
   > The grooid relocation maps java.beans.** → groovyjarjaropenbeans, and 
shadow rewrote a string literal "java.beans" → "groovyjarjaropenbeans" in 
Java9.JAVA8_PACKAGES(). jarjar left it intact. That array (source comment: 
"should NOT be changed!") holds real JDK package names looked up against 
ModuleFinder.ofSystem() to decide which packages Groovy opens reflectively — 
"groovyjarjaropenbeans" isn't a real JDK package, so that lookup would no-op.
   >   - Scope: grooid (Android) jar only — the core jar's Java9.class is 
byte-identical.
   >   - Real-world impact: very likely inert (the Java9 plugin's static init 
needs java.lang.module, which doesn't exist on Android, so it won't load 
there). But it's an unintended bytecode change and the clearest example of 
shadow's more aggressive string-constant rewriting. Worth flagging to Daniel — 
ideally the java.beans.** grooid rule should suppress string-literal relocation 
(or the AutoComplete case too), to keep grooid bytecode faithful.


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