jonnybot0 commented on PR #2429:
URL: https://github.com/apache/groovy/pull/2429#issuecomment-4226969271

   Overall, I agree that following Java's example seems more prudent than 
Scala's.
   
   I suspect that treating module imports as a distinct thing from static star 
imports, at least at some level in the AST, might be prudent. That could be 
because I never fully recovered from the psychic damage I took in the OSGi salt 
mines. 🙂
   
   That caveat aside, it does seem like there's something from the module 
imports JEP that we're not supporting: Transitive dependencies across modules 
(as described in [JEP 476](https://openjdk.org/jeps/476)).
   
   > The ability to import at the level of modules would be especially helpful 
when APIs in one module have a close relationship with APIs in another module. 
This is common in large multi-module libraries such as the JDK. For example, 
the 
[java.sql](https://docs.oracle.com/en/java/javase/22/docs/api/java.sql/module-summary.html)
 module provides database access via its java.sql and javax.sql packages, but 
one of its interfaces, 
[java.sql.SQLXML](https://docs.oracle.com/en/java/javase/22/docs/api/java.sql/java/sql/SQLXML.html),
 declares public methods whose signatures use interfaces from the 
javax.xml.transform package in the 
[java.xml](https://docs.oracle.com/en/java/javase/22/docs/api/java.xml/module-summary.html)
 module. Developers who call these methods in java.sql.SQLXML typically import 
both the java.sql package and the javax.xml.transform package. To facilitate 
this extra import, the java.sql module depends on the java.xml module 
[transitively](https://dev.java/learn/modules/imp
 lied-readability/), so that a program which depends on the java.sql module 
depends automatically on the java.xml module.
   
   Unless I have made an error, the existing branch does not do this. I've 
added a test to my fork (see 
https://github.com/apache/groovy/commit/301582fa4d7337f8eff7643ec3cd05e68e4e20e5)
 that demonstrates the issue.
   
   This is part of what makes me think we may well need specific semantics for 
the AST of module imports. There are additional expectations built into the JEP 
that make me think we'd need some specific things to handle them properly.


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