anchor.diff:      sw.stop();
       logger.info('Running dartdoc for ${job.packageName} ${job.packageVersion} '
           'completed in ${sw.elapsed}.');
  -    final shouldRetry = r.wasTimeout ||
  -        // TODO: remove this after https://github.com/dart-lang/dartdoc/issues/2101 gets fixed
  -        (!r.wasSuccessful &&
  -            r.processResult.stdout.toString().contains(
  -                "type 'FunctionTypeImpl' is not a subtype of type 'InterfaceType'"));
  -    if (shouldRetry) {
  +    if (r.wasTimeout) {
         r = await runDartdoc(isReduced: true);
       }
   
  
positive.code:     final hasContent = r.hasIndexHtml && r.hasIndexJson;
  
      if (r.processResult.exitCode != 0) {
        if (hasContent || _isKnownFailurePattern(_mergeOutput(r.processResult))) {
          logger.info('Error while running dartdoc for $job (see log.txt).');
        } else {
          final output = _mergeOutput(r.processResult, compressStdout: true);
  
negative.code:       );
        final hasIndexHtml = await File(p.join(outputDir, 'index.html')).exists();
        final hasIndexJson = await File(p.join(outputDir, 'index.json')).exists();
        final stdoutStr = pr.stdout.toString();
        return DartdocResult(
          pr,
          pr.exitCode == 15 ||
              pr.exitCode == -9 ||
              (pr.exitCode != 0 && stdoutStr.contains('timeout')),
          hasIndexHtml,
          hasIndexJson,
        );
      }
  
      final sw = Stopwatch()..start();
  