Printed @as names of fields and constructors turn non-ASCII letters into other characters
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Domaine
- compilers
Piste de recherche
Start with Printtyp.tree_of_constructor and Res_outcome_printer, the two printer locations named in the issue, and compare their escaping with String_literal.encode_js_string, which is used for @tag names. Check how non-ASCII @as names appear in printed interfaces, errors, and hover; done means they preserve the original runtime names when read back. Linked pull request #9143 is already open.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When a type declaration is printed (error messages, hover, createInterface), the @as names of record fields and variant constructors are escaped the OCaml way (%S in Printtyp.tree_of_constructor, String.escaped in Res_outcome_printer). Non-ASCII bytes become decimal escapes like \195\169, which ReScript reads back as different characters.
module Make = (X: {type t}) => {
type record = {@as("prénom") name: X.t}
type variant = | @as("é") E | @as("a\"b") Q
}
module Applied = Make({
type t = string
})
createInterface prints the types of Applied through this printer:
module Applied: {
type record = {@as("pr\195\169nom") name: string}
type variant = @as("\195\169") E | @as("a\"b") Q
}
Read back, @as("pr\195\169nom") names the field prénom:
type record = {@as("pr\195\169nom") name: string}
let r = {name: "x"}
compiles to
let r = {
"prénom": "x"
};
so a generated interface gives the fields and constructors other runtime names than the implementation. Error messages and hover show the escapes too.
The @tag name of a declaration is printed with String_literal.encode_js_string since #9136, which keeps non-ASCII letters and escapes only what a string literal needs.
- Langage dominant
- OCaml
- Étoiles
- 7.5k
- Forks
- 484
- Merge moyen
- 20 h 43 min
- PR mergées (30 j)
- 263
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
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é 1/5 Moins d'une heure Accessibilité débutants 85/100
rescript-lang/rescript#9139 ·
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#9151 ·
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#9130 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 1-2 jours Accessibilité débutants 55/100
rescript-lang/rescript#9122 ·
Les mainteneurs répondent en général sous 1 jour
-
Dev dependencies interactingPeut-être pris @CarlOlson l’a pris il y a 4 jours. Ouverte
Difficulté 4/5 1-2 jours Accessibilité débutants 25/100
rescript-lang/rescript#9089 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de rescript-lang/rescript
Issues similaires
-
The inference report marks `--` on its first dash onlyPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
objectionary/eo#9762 ·
Les mainteneurs répondent en général sous 2 jours
-
0.kind: build failure
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
JS/TS: JSX props compile errors should link to a doc page explaining the static-list requirementOuvertearea: js-runtime enhancement exists-upstream interop priority: low
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
shayanhabibi/fickl#307 ·
Les mainteneurs répondent en général sous 1 jour
-
bug_feature_triaged Team: Mojo Libraries
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 4 jours