Ticket #154 (closed refactor: fixed)
Refactor TFetters to TConstrained
|Reported by:||benl||Owned by:||benl|
|Component:||Source Type Inferencer||Version:||0.1.2|
TFetters contains type constraints in an unsorted list, which is death to performance. We really want to keep type constraints in several finite maps, depending on what sort they are. I've abandoned a previous attempt where I simply removed TFetters and switched to TConstrained, but it was going to take far too long to get the compiler building again.
Better to have both TFetters and TConstrained for a while. We can convert between the representations on the border to performance critical sections like Type.Util.Pack. Having done this we can clean up this module, and others like it, and keep the whole thing working as we move through.