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

[TS] Integrate computed class members without mixing symbol and string keys

Aberta
#575 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@CaelmBleidd já está trabalhando nisso.

Desde 16/10/2026.

  • #578 de @CaelmBleidd — aberto

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
15/100
Tipo de issue
Refatoração
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
kotlin, typescript
Domínio
compilers, testing-qa

Direção de pesquisa

Start from the member-name comparisons the issue lists: virtual/static lookup, overload selection, field metadata and property-presence checks, which compare names as plain strings. The work depends on the JacoDB frontend fix (UnitTestBot/jacodb#448) and is already under way in linked PR #578, so check that PR before starting. Done means symbol-marked declarations stay separate from same-named string keys, unsupported symbol operations still report explicit unsupported outcomes, and the plain, literal-key and iterator Counter tests pass along with the unchanged Matrix and SegmentTree scenarios.

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

Descrição

The two-phase PBT/USVM experiment (parent #345) needs the frontend fix in UnitTestBot/jacodb#448 (UnitTestBot/jacodb#447). That frontend retains literal computed class keys and a recognized intrinsic Symbol.iterator key, preserving symbol/string identity through optional wellKnownSymbol metadata in field and method signatures.

USVM currently compares member names as strings in virtual/static lookup, overload selection, field metadata and property-presence logic. Updating the dependency alone could conflate [Symbol.iterator] with the ordinary string "Symbol.iterator".

Bounded implementation:

  • Update to a publicly resolvable immutable JacoDB snapshot containing the frontend fix.
  • Keep ordinary string lookups separate from symbol-marked declarations across current consumers.
  • Preserve explicit unsupported outcomes for symbol reads/writes/initialization not represented by existing runtime storage; do not silently use ordinary string storage or drop initializer effects.
  • Prove ordinary methods on plain/literal-key/iterator Counter classes through source-level symbolic tests and native replay.
  • Check original frozen Matrix and SegmentTree ordinary scenarios, preserving any next unsupported outcomes and source hashes.

General Symbol runtime and arbitrary symbol dispatch remain in #439. Path selector/priority queue changes are outside this issue.

Linguagem predominante
Kotlin
Estrelas
33
Forks
27
Merge médio
3d 21h
PRs com merge (30d)
88

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

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 UnitTestBot/usvm

Todas as issues de UnitTestBot/usvm

Issues semelhantes

Mais issues de Kotlin

Receba novas issues na sua caixa de entrada

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