swift
05b1d72b - [ConstraintSystem] Add `Splitter`, `Component` and binding steps

Commit
7 years ago
[ConstraintSystem] Add `Splitter`, `Component` and binding steps * `SplitterStep` is responsible for running connected components algorithm to determine how many independent sub-systems there are. Once that's done it would create one `ComponentStep` per such sub-system, and move to try to solve each and then merge partial solutions produced by components into complete solution(s). * `ComponentStep` represents a set of type variables and related constraints which could be solved independently. It's further simplified into "binding" steps which attempt type variable and disjunction choices. * "Binding" steps such as `TypeVariableStep` and `DisjunctionStep` are responsible for trying type binding choices in attempt to simplify the system and produce a solution. After attempting each choice they introduce a new "split" step to compute more work.
Author
Committer
Davide Italiano
Parents
Loading