[TS] Integrate computed class members without mixing symbol and string keys
維護者通常 1 天內回覆
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 15/100
- Issue 類型
- 重構
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- kotlin, typescript
- 領域
- compilers, testing-qa
研究方向
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.
由索引模型根據 Issue 內容生成。
描述
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.
- 主要語言
- Kotlin
- 星號
- 33
- 分支
- 27
- 平均合併
- 4 天 1 小時
- 30 天內合併 PR
- 84
環境準備
這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
UnitTestBot/usvm 的其他 Issue
-
[TS PBT] Save campaign-file artifacts before stdout publication可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 74/100
UnitTestBot/usvm#612 ·
維護者通常 1 天內回覆
-
[TS PBT] Preserve class verification after expected PBT budget expiry可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 5/5 一週以上 新手友好度 18/100
UnitTestBot/usvm#618 ·
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 25/100
UnitTestBot/usvm#613 ·
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 43/100
UnitTestBot/usvm#604 ·
維護者通常 1 天內回覆
-
難度 5/5 一週以上 新手友好度 25/100
UnitTestBot/usvm#592 ·
維護者通常 1 天內回覆
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 62/100
pengchujin/aerial-tv#713 ·
維護者通常 1 天內回覆
-
bug good first issue
難度 2/5 1-3 小時 新手友好度 83/100
維護者通常 1 天內回覆
-
needs-triage
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 67/100
-
bug
難度 2/5 1-3 小時 新手友好度 67/100
lysine-dev/okhttp#9817 ·
維護者通常 1 天內回覆