[TS] Integrate computed class members without mixing symbol and string keys
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 15/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- kotlin, typescript
- Lĩnh vực
- compilers, testing-qa
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Kotlin
- Star
- 33
- Fork
- 27
- Merge trung bình
- 3 ngày 21 giờ
- Pull request đã merge (30 ngày)
- 88
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của UnitTestBot/usvm
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
UnitTestBot/usvm#612 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
UnitTestBot/usvm#618 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
UnitTestBot/usvm#613 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 43/100
UnitTestBot/usvm#604 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
UnitTestBot/usvm#592 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của UnitTestBot/usvm
Issue tương tự
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
afk-ok area:agents size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
enorm-labs/event-junkie#3523 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Submission] WeChat KidsĐang mởsubmit-adaption submit-adaption-pre
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
BetterAndroid/android-notification-icon-project#750 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
lysine-dev/okhttp#9797 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
openbase/planetsudo.engine#107 ·
Maintainer thường phản hồi trong vòng 1 ngày