anchor.diff:  import 'package:meta/meta.dart';
   import 'package:path/path.dart' as p;
   import 'package:scratch_space/scratch_space.dart';
  +import 'package:graphs/graphs.dart' show crawlAsync;
   
   import 'common.dart';
   import 'errors.dart';
  
positive.code:     return '--source=$uri';
    }));
  }
  
  /// Used when iterating transitive deps.
  class _ModuleNode {
    final parents = Set<AssetId>();
    final Module module;
  
    /// Whether this module should provide itself as a source dependency instead
    /// of a dill dependency.
    bool sourceOnly;
  
    AssetId get id => module.primarySource;
  
    _ModuleNode(this.module, this.sourceOnly);
  }
  
negative.code:   File packagesFile;
  
    await buildStep.trackStage('CollectDeps', () async {
      var kernelDeps = <AssetId>[];
      var sourceDeps = <AssetId>[];
  
      await _findModuleDeps(
          module, kernelDeps, sourceDeps, buildStep, outputExtension);
  
      var allAssetIds = Set<AssetId>()
        ..addAll(module.sources)
        ..addAll(kernelDeps)
        ..addAll(sourceDeps);
      await scratchSpace.ensureAssets(allAssetIds, buildStep);
  
      packagesFile = await createPackagesFile(allAssetIds);
  
      _addRequestArguments(request, module, kernelDeps, dartSdkDir, sdkKernelPath,
          outputFile, packagesFile, summaryOnly);
    });
  
    // We need to make sure and clean up the temp dir, even if we fail to compile.
  