anchor.diff:          message: message, referredFrom: referredFromElements);
     }
   }
  +
  +/// Stores all links found in a page, and the base href.
  +class _PageLinks {
  +  final Set<String> links;
  +  final String? baseHref;
  +
  +  const _PageLinks(this.links, this.baseHref);
  +}
  
positive.code:   ///
    /// This is extracted to save memory during the check; be careful not to hang
    /// on to anything referencing the full file and doc tree.
    Tuple2<Iterable<String>, String?>? _getStringLinksAndHref(String fullPath) {
      final file = _config.resourceProvider.getFile(fullPath);
      if (!file.exists) {
        return null;
  
negative.code:   void _collectLinks(String pathToCheck, [String? source, String? fullPath]) {
      fullPath ??= p.join(_origin, pathToCheck);
  
      final pageLinks = _getLinksAndBaseHref(fullPath);
      if (pageLinks == null) {
        // The file could not be read.
        _warn(PackageWarning.brokenLink, pathToCheck, _origin,
            referredFrom: source);
        _onCheckProgress.add(pathToCheck);
  