The interval check pass has gotten quite big and complicated because it is currently handling two different tasks:
Standard well-formedness checks like indexes in bundles being within bounds
Filament's interval checking algorithm
The reason for this is because of the original authors laziness and hesitation in adding another pass that calls into an SMT solver–because (1) also requires calls into an SMT solver, it was just easier to keep everything in one place. However, this has gotten extremely unwieldy. The correct solution is separating those two things out so we can write a standard type checking and well-formedness pass followed by an interval checker.
The nice thing about this issue is that it mostly involves code reorganization.
The interval check pass has gotten quite big and complicated because it is currently handling two different tasks:
The reason for this is because of the original authors laziness and hesitation in adding another pass that calls into an SMT solver–because (1) also requires calls into an SMT solver, it was just easier to keep everything in one place. However, this has gotten extremely unwieldy. The correct solution is separating those two things out so we can write a standard type checking and well-formedness pass followed by an interval checker.
The nice thing about this issue is that it mostly involves code reorganization.