Support Java 25 module import declarations (JEP 511)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia da ReloadableJava25ParserVisitor.visitImport e dalle modifiche al parser/printer in #5997. Leggi la discussione precedente su J.Import rispetto a un modello separato per l’importazione dei moduli, incluse le forme JCImport e JCModuleImport di ImportTree. È completato quando import module java.base; viene analizzato senza desincronizzazione del cursore e supera il controllo di idempotenza della stampa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What problem are you trying to solve?
import module java.base; (JEP 511) isn't handled by the parser. ReloadableJava25ParserVisitor.visitImport only looks at isStatic(), never ImportTree.isModule(), so the module keyword is left unconsumed and the source cursor desyncs. The result isn't a clean failure but corrupted output:
-import module java.base;
+import javale java.base;
Any project using module imports therefore fails the print idempotency check.
Prior work
-
#5993 was closed with the JEP 511 box unchecked.
-
#5997 implemented this as a
moduleflag onJ.Import(next tostatik), and was closed unmerged:I don't approve of the approach. The JLS and compiler itself differentiate between module imports and non-imports, and I think it will add complexity to every import-related features if
J.Importrepresents both. Closing and will redo at a later time.— @jkschneider, https://github.com/openrewrite/rewrite/pull/5997#issuecomment-3835776840
-
The review on that PR had already framed the choice. @Laurens-W noted that
ImportTreecan now be either aJCImportor aJCModuleImport, and laid out the two options: a newJ.ModuleImportplus a sharedImportinterface (isStatic()/isModule()/getQualid()), which makesCompilationUnitreturn the interface rather than the implementation and requires refactoring the existingJ.Importusages; or themoduleflag, which "leaves surface for issues later on". -
@sambsnyd noted that a model change here needs a SaaS deployment queued after merge.
-
The parser and printer changes in #5997 remain a useful reference however the LST ends up being modelled.
- Lingua principale
- Java
- Stelle
- 3.7k
- Fork
- 571
- Merge medio
- 20h 46m
- PR unite (30g)
- 211
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openrewrite/rewrite
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
openrewrite/rewrite#8654 ·
I maintainer di solito rispondono entro 1 giorno
-
bug gradle
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openrewrite/rewrite#7576 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
openrewrite/rewrite#3406 · 8 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Node lock regeneration fails when a peer dependency resolves to multiple versions (peer fork)Apertabug javascript
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
openrewrite/rewrite#8932 ·
I maintainer di solito rispondono entro 1 giorno
-
bug javascript
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
openrewrite/rewrite#8926 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di openrewrite/rewrite
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
beehive-lab/TornadoVM#1151 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
(cbor) `maxStringLength` not consistently checked for chunked (indefinite-length) text valuesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
FasterXML/jackson-dataformats-binary#823 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno