82897fdfde
Since none of the subparts of the base method share any local state, make the base method virtual and override it in all of the subclasses with the subclass-specific functionality. Also add an `ASSERT(IsNull());` check to all base implementations to cause an error in DEBUG mode when forgetting to override in a subclass, and then perform what should happen in the null case (if anything). This way, in DEBUG mode, it's easier to distinguish an accidental null slipping through vs. a lack of overriding. TEST=Pure refactoring, so existing tests. Change-Id: I57a669e5eb34119443d84bf1208ce7232a0e4c6c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262347 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Tess Strickland <sstrickl@google.com>