anchor.diff:      stopwatch.stop();
       String elapsed = (stopwatch.elapsedMilliseconds / 1000.0).toStringAsFixed(1);
   
  +    host.deleteSync(recursive: true);
  +
       if (exitCode < 0 || exitCode > 3) // 0 = nothing, 1 = hints, 2 = warnings, 3 = errors
         return exitCode;
   
  
positive.code:       } else {
          printStatus('Analyzing ${dartFiles.length} files...');
        }
      }
  
      Process process = await Process.start(
  
negative.code: import '../build_configuration.dart';
  import '../globals.dart';
  import '../runner/flutter_command.dart';
  
  bool isDartFile(FileSystemEntity entry) => entry is File && entry.path.endsWith('.dart');
  bool isDartTestFile(FileSystemEntity entry) => entry is File && entry.path.endsWith('_test.dart');
  bool isDartBenchmarkFile(FileSystemEntity entry) => entry is File && entry.path.endsWith('_bench.dart');
  
  bool _addPackage(String directoryPath, List<String> dartFiles, Set<String> pubSpecDirectories) {
    final int originalDartFilesCount = dartFiles.length;
  
    // .../directoryPath/*/bin/*.dart
    // .../directoryPath/*/lib/main.dart
    // .../directoryPath/*/test/*_test.dart
    // .../directoryPath/*/test/*/*_test.dart
    // .../directoryPath/*/benchmark/*/*_bench.dart
  
    Directory binDirectory = new Directory(path.join(directoryPath, 'bin'));
    if (binDirectory.existsSync()) {
      for (FileSystemEntity subentry in binDirectory.listSync()) {
        if (isDartFile(subentry))
          dartFiles.add(subentry.path);
      }
    }
  
    String mainPath = path.join(directoryPath, 'lib', 'main.dart');
    if (FileSystemEntity.isFileSync(mainPath))
      dartFiles.add(mainPath);
  
    Directory testDirectory = new Directory(path.join(directoryPath, 'test'));
    if (testDirectory.existsSync()) {
      for (FileSystemEntity entry in testDirectory.listSync()) {
        if (entry is Directory) {
          for (FileSystemEntity subentry in entry.listSync()) {
            if (isDartTestFile(subentry))
              dartFiles.add(subentry.path);
          }
        } else if (isDartTestFile(entry)) {
          dartFiles.add(entry.path);
        }
      }
    }
  
    Directory benchmarkDirectory = new Directory(path.join(directoryPath, 'benchmark'));
    if (benchmarkDirectory.existsSync()) {
      for (FileSystemEntity entry in benchmarkDirectory.listSync()) {
        if (entry is Directory) {
          for (FileSystemEntity subentry in entry.listSync()) {
            if (isDartBenchmarkFile(subentry))
              dartFiles.add(subentry.path);
          }
        } else if (isDartBenchmarkFile(entry)) {
          dartFiles.add(entry.path);
        }
      }
    }
  
    if (originalDartFilesCount != dartFiles.length) {
      pubSpecDirectories.add(directoryPath);
      return true;
    }
    return false;
  }
  
  class AnalyzeCommand extends FlutterCommand {
    String get name => 'analyze';
  