655fcda015
Previously, each piece of analyzer code needed during the FixBuilder stage of migration needed to use the ElementTypeProvider interface to access element types (rather than reading the types from the elements directly), in order to ensure that the proper post-migration types were used when building fixes. This required a lot of plumbing, and there was a high risk that we would accidentally fail to use the indirection mechanism in a key location and access the elements directly. This CL changes the approach so that the ElementImpl classes themselves are responsible for indirecting through ElementTypeProvider. This means that we can back out all the plumbing, and there is no risk of accidentally failing to use the indirection mechanism. Change-Id: Ic1a0acc37f0350fc13b487f73fc1ad5225d7a090 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134360 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Mike Fairhurst <mfairhurst@google.com> Commit-Queue: Paul Berry <paulberry@google.com>