[TS] Integrate computed class members without mixing symbol and string keys
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 15/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- kotlin, typescript
- Ambito
- compilers, testing-qa
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Current delivery (2026-10-17)
The bounded implementation is published for review, not merged:
- USVM #578 at
d6c770ca5154cb55d2f3207374d5d0aa615d4fd8pins the public immutable JacoDB snapshot0fac32c8c5and makes the current method/field consumers respect symbol-versus-string identity. It also preserves the actual string key when the frontend emits%callfor a computed call. - Upstream UnitTestBot/jacodb#448 at
0fac32c8c511c6228c3d6897262dc0924635af44is also open, not merged. Its optionalwellKnownSymbolmetadata and supported literal/numeric class keys are already consumed by the published USVM change. - Live CI is green at those exact heads: 7/7 checks for #578 and 8/8 for JacoDB #448. The source/native regressions cover ordinary Counter methods and distinct string/symbol identities. The unchanged SegmentTree constructor/query probe returns symbolic
3, matching native execution.
This does not provide general Symbol storage or dispatch (#439), dynamic/shadowed computed keys, or complete class support. With #578 alone, the unchanged Matrix getter example exposed the mismatch recorded in #577. Published #595 instead makes that case explicitly unsupported; it does not execute the getter. Getter implementation remains #577.
The original bounded acceptance below is retained. The next delivery step for this issue is review/merge of the prepared dependency and consumer changes, rather than reimplementing their already-published code. No PR or issue was merged/closed by this status update.
Original report and acceptance (retained verbatim)
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.
- Lingua principale
- Kotlin
- Stelle
- 33
- Fork
- 27
- Merge medio
- 3g 21h
- PR unite (30g)
- 88
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di UnitTestBot/usvm
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
UnitTestBot/usvm#612 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 18/100
UnitTestBot/usvm#618 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
UnitTestBot/usvm#613 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 43/100
UnitTestBot/usvm#604 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
UnitTestBot/usvm#592 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di UnitTestBot/usvm
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
afk-ok area:agents size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
enorm-labs/event-junkie#3523 ·
I maintainer di solito rispondono entro 1 giorno
-
[Submission] WeChat KidsApertasubmit-adaption submit-adaption-pre
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
BetterAndroid/android-notification-icon-project#750 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
lysine-dev/okhttp#9797 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
openbase/planetsudo.engine#107 ·
I maintainer di solito rispondono entro 1 giorno