Emitted JS / Gentype double-escapes output
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, ocaml, typescript
- Domínio
- compilers
Direção de pesquisa
Comece em compiler/gentype/TranslateTypeDeclarations.ml, por volta da linha 48, e depois inspecione os casos @as em tests/gentype_tests/typescript-react-example/src/Records.res e suas saídas geradas .gen.tsx e .res.js. Execute o teste existente de gentype e reproduza os dois casos de aspas escapadas. Está concluído quando o JavaScript e o TypeScript gerados não fizerem escape duplo do valor e o parser aceitar o identificador exótico.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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?
- Linguagem predominante
- OCaml
- Estrelas
- 7.5k
- Forks
- 485
- Merge médio
- 1d 4h
- PRs com merge (30d)
- 50
Preparar o ambiente
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de rescript-lang/rescript
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
rescript-lang/rescript#8659 · 2 comentários · 2 reações ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
rescript-lang/rescript#8647 ·
Mantenedores costumam responder em até 1 dia
-
Untagged variants: boolean literal/payload overlap is rejected while string, int, float and bigint overlap is allowedTalvez já em andamento @cknitt assumiu há 21 dias. Aberta
rescript-lang/rescript#8632 · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 28/100
rescript-lang/rescript#8624 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
rescript-lang/rescript#8596 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de rescript-lang/rescript
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
-
todo:ticket
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
publicodes/publicodes#868 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 89/100
Mantenedores costumam responder em até 1 dia