Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

dict_set with a non-string key silently stores nothing

Đang mở Phù hợp với người mới
#1,642 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
72/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
c
Lĩnh vực
compilers

Hướng nghiên cứu

Tìm phần cài đặt C của builtin dict_set cùng với đường gán theo index đã ném type_mismatch cho key không phải string — so sánh cả hai để xem cách kiểm tra được thực hiện tường minh như thế nào. Nhân bản kiểm tra đó vào dict_set và các builtin anh em ghi key của dict, sau đó thêm một suite test dùng probe map_keys.eigs (hoặc đoạn snippet trong issue) và xác nhận nó fail trên binary phát hành v0.44.0 trước khi fix và pass sau khi fix.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area:stdlib kind:silent-wrong

Found by the guest-language value matrix (hq, pre-pass for #1286), probes run against the v0.44.0 release binary (full build).

d is {}
dict_set of [d, 1, "one"]
print of (keys of d)   # []   — no error, nothing stored
d[1.5] is "x"          # raises type_mismatch (index syntax is loud)

Index syntax rejects a non-string key loudly; dict_set drops it silently. Every guest language uses numeric map keys (Lua tables, Python dicts, Go maps); the matrix proposes a #1286 map-key row for the design question. This issue is just the silent drop. Probe: map_keys.eigs.

Done when

  • dict_set (and any sibling builtin that writes dict keys) raises on a non-string key, exactly as index assignment does, until #1286's map-key row decides otherwise.
  • A suite test fails on v0.44.0.
Ngôn ngữ chính
C
Star
3
Fork
7
Merge trung bình
8 giờ 17 phút
Pull request đã merge (30 ngày)
248

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của InauguralSystems/EigenScript

Tất cả issue của InauguralSystems/EigenScript

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.