Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@crates/vm/src/builtins/type.rs`:
- Around line 1870-1873: The code calls dict.to_attributes(vm) before extracting
__qualname__, which can force early iteration/validation and panic on non-string
keys; instead, remove and validate the __qualname__ entry from the original dict
prior to converting to attributes. Concretely: call
dict.shift_remove(identifier!(vm, __qualname__)) (or an equivalent safe lookup)
on the incoming dict first and run downcast_qualname on that result, then call
dict.to_attributes(vm) to build attributes; reference symbols:
dict.to_attributes(vm), identifier!(vm, __qualname__), shift_remove,
downcast_qualname, and the type.__new__ namespace handling where this ordering
occurs.