google / google/google-java-format

Allow to provide source file java language version

Aperta
#975 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
6.2k
Fork
937
Merge medio
6m
PR unite (30g)
3

Descrizione

When formatting files with `google-java-format`, the parser uses the same source version as its own runtime version (running `google-java-format` on JDK X implies that that Java source files are conformant with JDK `X`), but this is actually not necessary true and files may be aiming for a different (older) Java version. Nowadays it is a common pattern to use `--release` flag to compiler for a specific older version of the language using a newer JDK.

Unfortunately Java language is not fully backward compatible and some features have introduced breaking changes like reserved identifiers `var`, `with, `yield` or `record` (see current list in [JLS Section 3.8](https://docs.oracle.com/javase/specs/jls/se21/html/jls-3.html#jls-3.8))

For files who were designed to compile with an older Java version and who are using now reserved identifiers, this cause their processing with `google-java-format` using a recent JDK version to fail.

A solution would be to allow to pass either the `source` or the `release` option to the java parser to adapt its own parsing to the java version used by the file.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.