anchor.diff:    ///
     /// The path is the actual substring of the URI representing the path,
     /// and it is encoded where necessary. To get direct access to the decoded
  -  /// path use [pathSegments].
  +  /// path, use [pathSegments].
     ///
     /// The path value is the empty string if there is no path component.
     String get path;
  
positive.code:   ///
    /// Example:
    /// ```dart
    /// var uri = Uri.parse("http://example.com/");
    /// print(uri.isScheme("HTTP"));  // Prints true.
    /// ```
    ///
    /// An empty [scheme] string matches a URI with no scheme
  
negative.code:   /// Each part that is not provided will default to the corresponding
    /// value from this `Uri` instead.
    ///
    /// This method is different from [Uri.resolve], which overrides in a
    /// hierarchical manner,
    /// and can instead replace each part of a `Uri` individually.
    ///
    /// Example:
    /// ```dart
    /// final uri1 = Uri.parse(
    ///     'http://dart.dev/guides/libraries/library-tour#utility-classes');
    ///
    /// final uri2 = uri1.replace(
    ///     scheme: 'https',
    ///     path: 'guides/libraries/library-tour',
    ///     fragment: 'uris');
    /// print(uri2); // https://dart.dev/guides/libraries/library-tour#uris
    /// ```
    /// This method acts similarly to using the `Uri` constructor with
    /// some of the arguments taken from this `Uri`. Example:
    /// ``` dart continued
    /// final Uri uri3 = Uri(
    ///     scheme: 'https',
    ///     userInfo: uri1.userInfo,
    ///     host: uri1.host,
    ///     port: uri2.port,
    ///     path: '/guides/language/language-tour',
    ///     query: uri1.query,
    ///     fragment: null);
    /// print(uri3); // https://dart.dev/guides/language/language-tour
    /// ```
    /// Using this method can be seen as shorthand for the `Uri` constructor
    /// call above, but may also be slightly faster because the parts taken
    /// from this `Uri` need not be checked for validity again.
    Uri replace(
  