c0bca2c210
Main changes: 1. Separating `FragmentBuilder` and `ElementBuilder`. I removed `augmentation.dart` and its builders, because now it is implemented in the new `ElementBuilder`. 2. Fragments are not given actual `Reference` objects anymore, there might be some in the current state, but I will go over this in the future and remove them completely. 3. Writing and reading elements also happens in two stages: first fragments, then elements. Each fragment in the summary is given unique ID, and during writing / reading elements we use these ID to locate fragments and create elements around them. 4. Lazy loading of `ClassElement` members is simplified and generalized, could be potentially applied to any `InstanceElement`. Maybe use also in mixins, which are used somewhat often in Flutter. 5. There are slight changes to tests, mostly to the better, sometime a bit reordering, a couple of new tests. There is some dirty code added, especially around patching types for getters, setters, and their fragments. I plan to clean this in future CLs as I move toward better implementation, and from using fragments where this is wrong. Change-Id: I1e4bf2a3b7ff45f1dba133797e85cd70aa729c11 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/433180 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>