Result: done
Pushed: see commit
Tests: nikaia test –both-settings –project tests/compiler 300 ok, 5 failed (a_for_mut_*: the #951 builder’s untracked tests, not mine); 3 new ok (a_push_checks_its_element_type, a_map_insert_checks_its_value_type, a_set_contains_checks_its_element_type); gate set 23 ok; clippy clean
Gate: green
Deviation: new tests not run against a stashed compiler (shared tree); before the fix the push probe is a rustc “Mismatched types” per the issue. Bootstrap: the new check refused cexport_model.nika (Vec[ref String] expects str), so the fixed lowering was hand-patched once in lowered/check_core_call_on.rs, built, and lower-std rewrote it (fixpoint: unchanged).
Found: only plain named types (no type arguments) are compared; lists, tuples, nullables and aliases as elements/keys are left to rustc
Needs: none
Changelog: push, insert, contains, contains_key, remove, get and entry on lists, sets and maps refuse an element, key or value of the wrong plain type with NK1102 instead of a rustc error (#964).
Owner: none
Disk freed: none; free 9.6G of 252G
Rs2nika: none (checker change, no move)
Files: crates/nikaia-std/src/tools/check_core_call_on.nika crates/nikaia-std/src/tools/lowered/check_core_call_on.rs