`@@jsxConfig({version: 3})` silently disables the JSX transform
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #9145 di @cknitt — integrata
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 74/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- ocaml
- Ambito
- compilers
Direzione di ricerca
Leggi compiler/syntax/src/jsx_ppx.ml, in particolare la gestione della versione di @@jsxConfig alle righe 53–56 e i controlli di trasformazione alle righe 107 e 124. Esamina prima la validazione circostante e i test per la configurazione JSX. Aggiungi un test che mostri che una versione non supportata, come 3, segnala un errore sul campo version; il lavoro è completato quando la configurazione non valida non lascia più JSX non trasformato senza segnalarlo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
@@jsxConfig accepts any version and stores it without checking (compiler/syntax/src/jsx_ppx.ml:53-56). The transform only runs when the version is 4 (jsx_ppx.ml:107, :124). Any other value, e.g. a leftover version: 3 from the JSX v3 days, silently turns the JSX transform off for the rest of the file. There is no error or warning.
@@jsxConfig({version: 3})
module C = {
@react.component
let make = () => React.null
}
let x = <div />
bsc -bs-jsx 4 -dsource on master (6ea63e5a91) shows the file untransformed: make keeps its @react.component attribute, there is no props type, and <div /> stays a JSX node. With version: 4, the same file is transformed as expected (type props, React.component, ReactDOM.jsx).
Expected: an error for unsupported JSX versions (only 4 exists since v11/v12), pointing at the version field. JSX v3 support is gone, so this should not fall through to an untransformed AST.
Possibly related cleanup: since only v4 remains, Jsx_common.version could become an enabled flag, and the no-op -bs-jsx-mode flag could go in v13.
- Lingua principale
- OCaml
- Stelle
- 7.5k
- Fork
- 484
- Merge medio
- 17h 2m
- PR unite (30g)
- 249
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 rescript-lang/rescript
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
rescript-lang/rescript#9151 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
rescript-lang/rescript#9130 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
rescript-lang/rescript#9122 ·
I maintainer di solito rispondono entro 1 giorno
-
Dev dependencies interactingForse già presa @CarlOlson l’ha presa 6 giorni fa. Aperta
Difficoltà 4/5 1-2 giorni Idoneità per principianti 25/100
rescript-lang/rescript#9089 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
rescript-lang/rescript#9074 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rescript-lang/rescript
Issue simili
-
bug devex good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
calcit-lang/calcit#2538 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 65/100
NomicFoundation/slang#2336 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
rocq-prover/rocq#22695 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority: P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno