Emitted JS / Gentype double-escapes output
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 55/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript, ocaml, typescript
- Domaine
- compilers
Piste de recherche
Commencez dans compiler/gentype/TranslateTypeDeclarations.ml, autour de la ligne 48, puis examinez les cas @as dans tests/gentype_tests/typescript-react-example/src/Records.res ainsi que leurs sorties générées .gen.tsx et .res.js. Exécutez le test gentype existant et reproduisez les deux cas de guillemets échappés. C’est terminé lorsque le JavaScript et le TypeScript générés n’échappent pas deux fois la valeur et que le parser accepte l’identifiant exotique.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Thank you for filing! Check list:
- Is it a bug? Usage questions should often be asked in the forum instead.
- Concise, focused, friendly issue title & description.
- A minimal, reproducible example.
- OS and browser versions, if relevant.
- Is it already fixed in master? Instructions
When using the @as attribute with a value containing escape sequences (e.g., @as("with\"dquote")), the generated JavaScript incorrectly double-escapes the string. Additionally the parser can't handle exotic identifiers with a \".
I found this while looking at #8086 and removing String.escaped from this line:
This existing test with an escaped double-quote \" in the @as annotation
Results it being double-escaped in the generated typescript types and javascript:
There's also a parser bug:
Error in @tests/gentype-react-example:
Syntax error!
/rescript-compiler/tests/gentype_tests/typescript-react-example/src/Records.res:135:11-17
133 ┆ @as("with\"dquote")
134 ┆ withDQuote: string,
135 ┆ \"with\"dquote2": string,
136 ┆ @as("with'squote")
137 ┆ withSQuote: string,
Did you forget a `,` here?
- Langage dominant
- OCaml
- Étoiles
- 7.5k
- Forks
- 485
- Merge moyen
- 1 j 6 h
- PR mergées (30 j)
- 52
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rescript-lang/rescript
-
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
rescript-lang/rescript#8688 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 76/100
rescript-lang/rescript#8687 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
rescript-lang/rescript#8659 · 2 commentaires · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
rescript-lang/rescript#8647 ·
Les mainteneurs répondent en général sous 1 jour
-
Untagged variants: boolean literal/payload overlap is rejected while string, int, float and bigint overlap is allowedPeut-être pris @cknitt l’a pris il y a 23 jours. Ouverte
rescript-lang/rescript#8632 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de rescript-lang/rescript
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
documentation self-host
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
JakeChampion/lang#10663 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour