b2f4cf3e01
The usual approach: Pure interfaces marked `interface`. Pure implementation classes marked `final`. Base classes marked `base` or nothing, and `mixin class` if reasonable. Combined X/XBase/XMixin where possible. CoreLibraryReviewExempt: Aske is away Change-Id: I927f9bd488fb385ff9c17c8fc94920a1f5076347 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289200 Reviewed-by: Stephen Adams <sra@google.com> Reviewed-by: Slava Egorov <vegorov@google.com> Reviewed-by: Nate Bosch <nbosch@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>