anchor.diff:    /// Ongoing gestures within the current route are canceled when a new route is
     /// pushed.
     ///
  -  /// Returns a Future that completes when the pushed route is popped.
  +  /// Returns a [Future] that completes to the `result` value passed to [pop]
  +  /// when the pushed route is popped off the navigator.
     Future<dynamic> push(Route<dynamic> route) {
       assert(!_debugLocked);
       assert(() { _debugLocked = true; return true; });
  
positive.code:   /// route. The type of `result`, if provided, must match the type argument of
    /// the class of the current route. (In practice, this is usually "dynamic".)
    ///
    /// Returns a Future that completes when the pushed route is popped.
    ///
    /// Typical usage is as follows:
    ///
  
negative.code:     return Navigator.of(context).pushNamed(routeName);
    }
  
    /// Adds the given route to the history of the navigator that most tightly
    /// encloses the given context, and transitions to it.
    ///
    /// The new route and the previous route (if any) are notified (see
    /// [Route.didPush] and [Route.didChangeNext]). If the [Navigator] has an
    /// [Navigator.observer], it will be notified as well (see
    /// [NavigatorObserver.didPush]).
    ///
    /// Ongoing gestures within the current route are canceled when a new route is
    /// pushed.
    ///
    /// Returns a [Future] that completes to the `result` value passed to [pop]
    /// when the pushed route is popped off the navigator.
    static Future<dynamic> push(BuildContext context, Route<dynamic> route) {
      return Navigator.of(context).push(route);
    }
  