462bcaf52a
Derived class `GetterFragmentImpl` is used for getters and `SetterFragmentImpl` is used for setters. Only `GetterFragmentImpl` implements `GetterFragment` and only `SetterFragmentImpl` implements `SetterFragment`. This ensures that clients performing `is GetterFragment` and `is SetterFragment` checks get the expected behavior. (Previously, any instance of `PropertyAccessorElementImpl` would satisfy *both* `is GetterFragment` and `is SetterFragment` tests). This made it possible for the types of getters defined in `GetterFragment` and `SetterFragment` to be more precise, which in turn allowed some casts to be removed from the analyzer. Change-Id: I243e8f6547d9aed77175e8c14c48af8970bfd528 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/412140 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Paul Berry <paulberry@google.com>