anchor.diff:  
     var compileSdk = argResults['compile-sdk'] == true;
     var oldCompilerState = compilerState;
  -  var doneAdditionalDills = <Component>[];
  -  fe.IncrementalCompiler? incrementalCompiler;
  -  fe.WorkerInputComponent? cachedSdkInput;
     var recordUsedInputs = argResults['used-inputs-file'] != null;
     var additionalDills = summaryModules.keys.toList();
  -
  +  fe.DdcResult? result;
  +
  +  // TODO(jmesserly): is there a cleaner way to do this?
  +  //
  +  // Ideally we'd manage our own batch compilation caching rather than rely on
  +  // `initializeCompiler`. Also we should be able to pass down Components for
  +  // SDK and summaries.
     if (!useIncrementalCompiler) {
       compilerState = fe.initializeCompiler(
           oldCompilerState,
  
positive.code:         environmentDefines: declaredVariables,
          nnbdMode:
              options.soundNullSafety ? fe.NnbdMode.Strong : fe.NnbdMode.Weak);
    } else {
      // If digests weren't given and if not in worker mode, create fake data and
      // ensure we don't have a previous state (as that wouldn't be safe with
  
negative.code:         inputDigests[uri] = const [0];
        }
      }
      var doneAdditionalDills =
          List.filled(summaryModules.length, dummyComponent);
      compilerState = await fe.initializeIncrementalCompiler(
          oldCompilerState,
          {
  