anchor.diff:  
       Logger.root.level = logLevel;
   
  -    logListener = Logger.root.onRecord.listen(environment.onLog);
  +    var logListener = Logger.root.onRecord.listen(environment.onLog);
   
       /// Set up other defaults.
       debounceDelay ??= const Duration(milliseconds: 250);
  
positive.code:     enableLowResourcesMode ??= false;
      trackPerformance ??= false;
  
      if (rootPackageConfig == null ||
          (rootPackageConfig.buildTargets.length == 1 &&
              rootPackageConfig.buildTargets.values.single.sources.include ==
  
negative.code:   // For testing only, skips the build script updates check.
    bool skipBuildScriptCheck;
  
    BuildOptions._(
        {@required this.debounceDelay,
        @required this.deleteFilesByDefault,
        @required this.enableLowResourcesMode,
        @required this.failOnSevere,
        @required this.logListener,
        @required this.outputDir,
        @required this.packageGraph,
        @required List<String> rootPackageFilesWhitelist,
        @required this.skipBuildScriptCheck,
        @required this.trackPerformance,
        @required this.verbose})
        : this.rootPackageFilesWhitelist =
              new UnmodifiableListView(rootPackageFilesWhitelist);
  
    factory BuildOptions(BuildEnvironment environment,
        {Duration debounceDelay,
        bool deleteFilesByDefault,
        bool enableLowResourcesMode,
        bool failOnSevere,
        Level logLevel,
        String outputDir,
        @required PackageGraph packageGraph,
        BuildConfig rootPackageConfig,
        bool skipBuildScriptCheck,
        bool trackPerformance,
        bool verbose}) {
      // Set up logging
      verbose ??= false;
      logLevel ??= verbose ? Level.ALL : Level.INFO;
  