anchor.diff:      try {
         final String json = await fingerprintFile.readAsString();
         final Fingerprint oldFingerprint = new Fingerprint.fromJson(json);
  -      final Set<String> snapshotInputPaths = await readDepfile(dependencies)
  -        ..add(genSnapshotInputFile)
  -        ..addAll(outputPaths);
  -      final Fingerprint newFingerprint = Snapshotter.createFingerprint(snapshotType, genSnapshotInputFile, snapshotInputPaths);
  -      if (oldFingerprint == newFingerprint) {
  +      if (oldFingerprint == await makeFingerprint()) {
           printStatus('Skipping AOT snapshot build. Fingerprint match.');
           return outputPath;
         }
  
positive.code: 
    // Compute and record build fingerprint.
    try {
      final Set<String> snapshotInputPaths = await readDepfile(dependencies)
        ..add(mainPath)
        ..addAll(outputPaths);
      final Fingerprint fingerprint = Snapshotter.createFingerprint(snapshotType, mainPath, snapshotInputPaths);
      await fingerprintFile.writeAsString(fingerprint.toJson());
    } catch (e, s) {
      // Log exception and continue, this step is a performance improvement only.
  
negative.code:     ]);
    }
  
    final String entryPoint = mainPath;
    final SnapshotType snapshotType = new SnapshotType(platform, buildMode);
    Future<Fingerprint> makeFingerprint() async {
      final Set<String> snapshotInputPaths = await readDepfile(dependencies)
        ..add(entryPoint)
        ..addAll(outputPaths);
      return Snapshotter.createFingerprint(snapshotType, entryPoint, snapshotInputPaths);
    }
  
    final File fingerprintFile = fs.file('$dependencies.fingerprint');
    final List<File> fingerprintFiles = <File>[fingerprintFile, fs.file(dependencies)]
      ..addAll(inputPaths.map(fs.file))
  