anchor.diff:    final CoreTypes coreTypes;
     final ClassHierarchy hierarchy;
     final TypeEnvironment typeEnvironment;
  -  final ConstantsBackend constantsBackend;
  +  final ConstantEvaluator constantEvaluator;
     final BytecodeOptions options;
  -  final ErrorReporter errorReporter;
     final BytecodeMetadataRepository metadata = new BytecodeMetadataRepository();
     final RecognizedMethods recognizedMethods;
     final int formatVersion;
  
positive.code:   final typeEnvironment = new TypeEnvironment(coreTypes, hierarchy);
    final constantsBackend = new VmConstantsBackend(coreTypes);
    final errorReporter = new ForwardConstantEvaluationErrors();
    libraries ??= component.libraries;
    try {
      final bytecodeGenerator = new BytecodeGenerator(component, coreTypes,
          hierarchy, typeEnvironment, constantsBackend, options, errorReporter);
      for (var library in libraries) {
        bytecodeGenerator.visitLibrary(library);
      }
  
negative.code:   List<int> savedMaxSourcePositions;
    int maxSourcePosition;
  
    BytecodeGenerator(ast.Component component, this.coreTypes, this.hierarchy,
        this.typeEnvironment, this.constantEvaluator, this.options)
        : recognizedMethods = new RecognizedMethods(typeEnvironment),
          formatVersion = currentBytecodeFormatVersion,
          astUriToSource = component.uriToSource {
  