Start moving away from named_type callback architecture by ilevkivskyi · Pull Request #21201 · python/mypy
This is a follow-up for #21170
Now that we have modules available as part of the global state (for the purposes of lazy deserialization), I propose to gradually move away from (IMO awkward) architecture where we pass around a lot of named_type callbacks, and instead use:
- A library of lookup functions (we already started migrating lookup functions to
lookup.py) - And the newly added global modules state
I am not sure yet what is the best way to use instance cache in a most robust way. For now I am starting with something a bit ad-hoc. We can experiment with this, and see if this works.
Note I only migrate few most problematic cases of the old callback-based pattern (one of those actually used an invalid callback). I also rename the global state file added in #21170 to have more generic name.
This also removes one function-level import and few nested functions, which may make code faster with mypyc (I measure 0.5% improvement, but this is at the noise level).
cc @JukkaL