anchor.diff:  /// A [Navigator] observer that notifies [RouteAware]s of changes to the
   /// state of their [Route].
   ///
  +/// [RouteObserver] informs subscribers whenever a route of type `T` is pushed
  +/// on top of their own route of type `T` or popped from it. This is for example
  +/// useful to keep track of page transitions, e.i. a `RouteObserver<PageRoute>`
  +/// will inform subscribed [RouteAware]s whenever the user navigates away from
  +/// the current page route to another page route.
  +///
  +/// If you want to be informed about route changes of any type, you should
  +/// instantiate a `RouteObserver<Route>`.
  +///
  +/// ## Sample code
  +///
   /// To make a [StatefulWidget] aware of its current [Route] state, implement
  -/// [RouteAware] in its [State] and subscribe it to the [RouteObserver]:
  +/// [RouteAware] in its [State] and subscribe it to a [RouteObserver]:
   ///
   /// ```dart
  +/// // Register the RouteObserver as a navigation observer.
  +/// final RouteObserver<PageRoute> routeObserver = new RouteObserver<PageRoute>();
  +/// void main() {
  +///   runApp(new MaterialApp(
  +///     home: new Container(),
  +///     navigatorObservers: [routeObserver],
  +///   ));
  +/// }
  +///
  +/// class RouteAwareWidget extends StatefulWidget {
  +///   State<RouteAwareWidget> createState() => new RouteAwareWidgetState();
  +/// }
  +///
  +/// // Implement RouteAware in a widget's state and subscribe it to the RouteObserver.
   /// class RouteAwareWidgetState extends State<RouteAwareWidget> with RouteAware {
  +///
   ///   @override
   ///   void didChangeDependencies() {
   ///     super.didChangeDependencies();
  
positive.code: ///
  ///   @override
  ///   void didPush() {
  ///     // Do something
  ///   }
  ///
  ///   @override
  ///   void didPopNext() {
  ///     // Do something
  ///   }
  ///
  /// }
  /// ```
  class RouteObserver<T extends Route<dynamic>> extends NavigatorObserver {
    final Map<T, RouteAware> _listeners = <T, RouteAware>{};
  
    void subscribe(RouteAware routeAware, T route) {
      assert(routeAware != null);
      assert(route != null);
  
negative.code:     }
    }
  
    /// Unsubscribe [routeAware].
    ///
    /// [routeAware] is no longer informed about changes to its route.
    void unsubscribe(RouteAware routeAware) {
      assert(routeAware != null);
      _listeners.remove(routeAware);
  