Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Issues from adversarial experiments on semantic analysts (ece8b148 to a7721303)

Aberta
#8,833 0 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
javascript
Domínio
compilers

Direção de pesquisa

This issue groups 23 separate issues covering compiler behavior, syntax and formatting, editor analysis, rewatch, tests, docs, CI and package metadata. Start with the linked sub-issue that matches the area you want to work on; its description should identify the specific defect or task and any relevant files or tests. Done means resolving that sub-issue’s stated task; the issue provides no single completion check for the whole collection.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Found by adversarial experiments on semantic analysts.

23 issues, covering 58 distinct defects in the changes from ece8b148 to a7721303 and the code they touch. Each issue was checked against 8d51b9ce7: behaviour bugs were reproduced with the compiler built at that commit. None repeats #8757–#8767.

  • 11 behaviour bugs, each in its own issue: a compiler crash, 5 miscompilations or wrong outputs (record copies, two JSX preserve-mode cases, the PPX round trip, toplevel module await), 3 formatter bugs, a lost watch in rescript watch and a test-harness race
  • 12 issues, most of them checklists, for tests that no longer guard their claim, dead code, stale comments and docs, missing tests, CHANGELOG classification, CI and package metadata

Compiler

  • #8810 Compiler crash (matching.ml assertion) on dict and optional-field record patterns mixing a value and ?None on one key
  • #8811 Unused record copies are no longer removed: object spreads are always treated as side-effecting
  • #8812 JSX preserve mode: the call fallback copies props given by a sole spread
  • #8813 JSX preserve mode spreads an @unboxed props record
  • #8814 External PPX round trip turns Primitive_dict.make(...) calls into dict literals and flattens nested dict-literal spreads
  • #8815 Toplevel module M = await (P: S) compiles to a static import
  • #8816 CHANGELOG: removed % primitives and the -pp flag are listed under Internal but break user code
  • #8817 Dead code and duplication in compiler/ml
  • #8818 Stale comments in the compiler

Syntax, formatter and editor analysis

  • #8819 Formatter prints module(await (await M): S), which the parser rejects
  • #8820 Formatter drops comments in dict patterns, variant spread patterns and dict literal spreads
  • #8821 Formatter indents dict literal rows twice after a spread
  • #8822 Missing tests for dict and module-await syntax in reanalyze, the formatter and the v0 AST bridge
  • #8823 Dead code in editor analysis and reanalyze
  • #8824 Stale comments and docs in syntax and analysis

Rewatch, tests, docs and packaging

  • #8825 rewatch watch on Linux stops watching a source folder when an overlapping recursive source folder is removed from rescript.json
  • #8826 super_errors snapshot update can fail because the long-path run reads snapshots while they are being rewritten
  • #8827 Build-test fixtures that no longer test what they claim
  • #8828 Stale developer docs, test comments and the build schema
  • #8829 rewatch comments that contradict the code
  • #8830 CI does not run npm run typecheck
  • #8831 @apply.transforms in rescript-tools migrate has no test
  • #8832 Root package.json exports ./lib/es6/* and ./lib/js/*, which the rescript package does not contain
Linguagem predominante
ReScript
Estrelas
7.5k
Forks
483
Merge médio
1d 1h
PRs com merge (30d)
120

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rescript-lang/rescript

Todas as issues de rescript-lang/rescript

Issues semelhantes

Mais issues de Compilers

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.