[TS] Invoke declared class getters during property reads
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 15/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- kotlin, typescript
- Domínio
- compilers, testing-qa
Direção de pesquisa
Start from the probe wrapper and cases/matrix/target.ts, then trace how a property read on new Matrix(...) is lowered in the TypeScript frontend and IR to see why get rows(), get cols() and get data() fall back to _rows, _cols and _data. Run the Matrix scenario and check that Matrix.get and Matrix.isValidIndex are entered as expected. Done means getter bodies are entered on property reads, with receiver, effects, exceptions and inheritance matching native execution.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
The original Matrix class now reaches ordinary execution after UnitTestBot/jacodb#448, but a fixed ordinary access produces an unreported semantic mismatch. Found during #575, linked to the real-class two-phase PBT/USVM plan #345.
Exact source: the unchanged frozen cases/matrix/target.ts from pbt-large-class-rerun-20261016. SHA-256: 3c4f790554d52f6da1913e2d3826e04b3de45e6271bc11e3bb21c15b96d7396c. Probe wrapper:
import { Matrix } from './target';
export function scenario(): number {
return new Matrix([[1, 2], [3, 4]]).get(1, 0);
}
USVM base e56cea501, official immutable JacoDB snapshot 0fac32c8c5 (full source commit 0fac32c8c511c6228c3d6897262dc0924635af44), plus narrow marker-aware consumer changes from #575. Native TypeScript execution returns 3. Symbolic execution returns one terminal TsUndefined, EXHAUSTED, engineFailed=false, unsupportedCall=false, and empty unsupportedPaths.
Observed entered statements by method: %dflt.scenario=23, Matrix.constructor=23, Matrix.%instInit=4, Matrix.get=11, Matrix.isValidIndex=13. The source defines get rows(), get cols(), and get data() backed by _rows, _cols, and _data; none of those getter bodies is entered. Property reads currently follow ordinary field storage and fail to invoke the declared accessor. This silently changes isValidIndex and consequently the return from get.
Bounded fix: preserve the declared getter identity through frontend/IR, invoke the getter with the actual receiver on property reads, and preserve getter effects, thrown exceptions, and inherited lookup. Preserve existing setter behavior and explicitly reject unsupported accessor forms. Do not treat the missing accessor as an ordinary missing field. A general Symbol implementation is outside this issue.
Validation should include a minimal class getter source regression plus native replay for receiver/effects/inheritance, and the unchanged Matrix scenario above. Evidence artifact in this task: pbt-computed-members-preflight-20261016/{source-hashes.json,comparison.json,symbolic-results.json,native-results.json}.
- 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
- 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 UnitTestBot/usvm
-
[TS] Integrate computed class members without mixing symbol and string keysTalvez já em andamento @CaelmBleidd assumiu hoje. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 15/100
UnitTestBot/usvm#575 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
UnitTestBot/usvm#555 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 5/100
UnitTestBot/usvm#498 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 8/100
UnitTestBot/usvm#497 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 12/100
UnitTestBot/usvm#496 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de UnitTestBot/usvm
Issues semelhantes
-
enhancement triaged
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 63/100
Mantenedores costumam responder em até 1 dia
-
bug follow-up
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
bug 🐞 CI/CD ⚒️
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
valkey-io/valkey-glide#7370 ·
Mantenedores costumam responder em até 1 dia
-
binding:web core docs p3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
RunanywhereAI/runanywhere-sdks#1123 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
openai/openai-java#1202 ·
Mantenedores costumam responder em até 1 dia