dict_set with a non-string key silently stores nothing
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
Línea de trabajo
Localiza la implementación en C del builtin dict_set junto a la ruta de asignación por índice que ya lanza type_mismatch para claves que no son cadenas: compara ambas para ver cómo se hace la comprobación estricta. Reproduce esa comprobación en dict_set y en los builtins hermanos que escriben claves de dict, y luego añade un test de la suite usando la sonda map_keys.eigs (o el fragmento del issue) y confirma que falla en el binario de release v0.44.0 antes de la corrección y que pasa después.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C
- Estrellas
- 3
- Forks
- 7
- Merge medio
- 8 h 44 min
- PR fusionados (30 d)
- 252
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de InauguralSystems/EigenScript
-
UB: (int) cast of a user double outside int range in dispatch / vm_index_is_int / flat_index_atAbiertoarea:runtime-vm
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
InauguralSystems/EigenScript#1748 ·
Los mantenedores suelen responder en 1 día
-
area:stdlib found-by:critic kind:gate-defect
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
InauguralSystems/EigenScript#1693 ·
Los mantenedores suelen responder en 1 día
-
area:gfx bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
InauguralSystems/EigenScript#1684 ·
Los mantenedores suelen responder en 1 día
-
area:stdlib bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
InauguralSystems/EigenScript#1679 ·
Los mantenedores suelen responder en 1 día
-
area:consumer
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
InauguralSystems/EigenScript#1658 ·
Los mantenedores suelen responder en 1 día
Todos los issues de InauguralSystems/EigenScript
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
-
test/command failure with filtered `listxattr` syscallPosiblemente ocupada @Kiskae la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100