`@@jsxConfig({version: 3})` silently disables the JSX transform
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #9145 de @cknitt — fusionado
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- ocaml
- Área
- compilers
Línea de trabajo
Lee compiler/syntax/src/jsx_ppx.ml, especialmente el manejo de la versión de @@jsxConfig en las líneas 53–56 y las comprobaciones de transformación en las líneas 107 y 124. Primero revisa la validación cercana y las pruebas de configuración de JSX. Añade cobertura que muestre que una versión no compatible, como 3, informa de un error en el campo version; el objetivo se cumple cuando la configuración no válida ya no deja JSX sin transformar silenciosamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
@@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.
- Lenguaje dominante
- OCaml
- Estrellas
- 7.5k
- Forks
- 484
- Merge medio
- 20 h 50 min
- PR fusionados (30 d)
- 266
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rescript-lang/rescript
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
rescript-lang/rescript#9139 ·
Los mantenedores suelen responder en 1 día
-
v0 AST round trip shortens the location of templates without interpolationsPosiblemente ocupada @cknitt la tomó hoy. Abierto
Dificultad 3/5 Medio día Aptitud para principiantes 52/100
rescript-lang/rescript#9164 ·
Los mantenedores suelen responder en 1 día
-
Record spread that copies a mutable field is generalized (unsound)Posiblemente ocupada @cknitt la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
rescript-lang/rescript#9156 ·
Los mantenedores suelen responder en 1 día
-
A block in an argument runs before the arguments to its left, which can produce wrong valuesPosiblemente ocupada @cknitt la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 32/100
rescript-lang/rescript#9154 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
rescript-lang/rescript#9151 ·
Los mantenedores suelen responder en 1 día
Todos los issues de rescript-lang/rescript
Issues similares
-
LIMIT inputs are named MIN/MAX instead of the standard MN/MX, so LIMIT(MN := ...) does not resolveAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug(sdk): Bug in KFP When Comparing Numbers or Booleans with StringsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertoarea/sdk kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
kubeflow/pipelines#15342 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug parser semantic
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
swc-project/swc-next#1330 ·
Los mantenedores suelen responder en 1 día
-
type:unverified bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
The inference report marks `--` on its first dash onlyPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
objectionary/eo#9762 ·
Los mantenedores suelen responder en 2 días