anchor.diff:        ]);
   
     /// Backend impact for --experiment-new-rti.
  -  List<BackendImpact> newRtiImpacts(String what) {
  -    if (!_options.experimentNewRti) return [];
  -    // TODO(sra): Split into refined impacts.
  -    return [
  -      BackendImpact(staticUses: [
  -        _commonElements.findType,
  -        _commonElements.instanceType,
  -        _commonElements.arrayInstanceType,
  -        _commonElements.simpleInstanceType,
  -        _commonElements.rtiEvalMethod,
  -        _commonElements.rtiBindMethod,
  -        _commonElements.generalIsTestImplementation,
  -        _commonElements.generalAsCheckImplementation,
  -        _commonElements.generalTypeCheckImplementation,
  -        // Specialized checks.
  -        _commonElements.specializedIsBool,
  -        _commonElements.specializedAsBoolNullable,
  -        _commonElements.specializedCheckBoolNullable,
  -        // no specializedIsDouble.
  -        _commonElements.specializedAsDoubleNullable,
  -        _commonElements.specializedCheckDoubleNullable,
  -        _commonElements.specializedIsInt,
  -        _commonElements.specializedAsIntNullable,
  -        _commonElements.specializedCheckIntNullable,
  -        _commonElements.specializedIsNum,
  -        _commonElements.specializedAsNumNullable,
  -        _commonElements.specializedCheckNumNullable,
  -        _commonElements.specializedIsString,
  -        _commonElements.specializedAsStringNullable,
  -        _commonElements.specializedCheckStringNullable,
  -        _commonElements.specializedIsTop,
  -        _commonElements.specializedAsTop,
  -        // no specializedCheckTop
  -      ], globalClasses: [
  -        _commonElements.closureClass, // instanceOrFunctionType uses this.
  -      ], globalUses: [])
  -    ];
  -  }
  +  BackendImpact _newRtiImpact;
  +
  +  // TODO(sra): Split into refined impacts.
  +  BackendImpact get newRtiImpact => _newRtiImpact ??= _options.experimentNewRti
  +      ? BackendImpact(staticUses: [
  +          _commonElements.findType,
  +          _commonElements.instanceType,
  +          _commonElements.arrayInstanceType,
  +          _commonElements.simpleInstanceType,
  +          _commonElements.rtiEvalMethod,
  +          _commonElements.rtiBindMethod,
  +          _commonElements.generalIsTestImplementation,
  +          _commonElements.generalAsCheckImplementation,
  +          _commonElements.generalTypeCheckImplementation,
  +          // Specialized checks.
  +          _commonElements.specializedIsBool,
  +          _commonElements.specializedAsBoolNullable,
  +          _commonElements.specializedCheckBoolNullable,
  +          // no specializedIsDouble.
  +          _commonElements.specializedAsDoubleNullable,
  +          _commonElements.specializedCheckDoubleNullable,
  +          _commonElements.specializedIsInt,
  +          _commonElements.specializedAsIntNullable,
  +          _commonElements.specializedCheckIntNullable,
  +          _commonElements.specializedIsNum,
  +          _commonElements.specializedAsNumNullable,
  +          _commonElements.specializedCheckNumNullable,
  +          _commonElements.specializedIsString,
  +          _commonElements.specializedAsStringNullable,
  +          _commonElements.specializedCheckStringNullable,
  +          _commonElements.specializedIsTop,
  +          _commonElements.specializedAsTop,
  +          // no specializedCheckTop
  +        ], globalClasses: [
  +          _commonElements.closureClass, // instanceOrFunctionType uses this.
  +        ])
  +      : BackendImpact();
   
     BackendImpact _rtiAddRules;
   
  
positive.code:   BackendImpact get asCheck {
      return _asCheck ??= new BackendImpact(staticUses: [
        _commonElements.throwRuntimeError,
      ], otherImpacts: newRtiImpacts('asCheck'));
    }
  
    BackendImpact _throwNoSuchMethod;
  
negative.code:       _commonElements.getRuntimeTypeInfo
      ], otherImpacts: [
        listValues,
        getRuntimeTypeArgument,
        newRtiImpact,
      ]);
    }
  
    BackendImpact _genericIsCheck;
  
    BackendImpact get genericIsCheck {
      return _genericIsCheck ??=
          new BackendImpact(otherImpacts: [intValues, newRtiImpact]);
    }
  
    BackendImpact _typeVariableTypeCheck;
  
    BackendImpact get typeVariableTypeCheck {
      return _typeVariableTypeCheck ??= new BackendImpact(
          staticUses: [_commonElements.checkSubtypeOfRuntimeType],
          otherImpacts: [newRtiImpact]);
    }
  
    BackendImpact _functionTypeCheck;
  
    BackendImpact get functionTypeCheck {
      return _functionTypeCheck ??= new BackendImpact(
          staticUses: [/*helpers.functionTypeTestMetaHelper*/],
          otherImpacts: [newRtiImpact]);
    }
  
    BackendImpact _futureOrTypeCheck;
  
    BackendImpact get futureOrTypeCheck {
      return _futureOrTypeCheck ??= new BackendImpact(
          staticUses: [_commonElements.futureOrTest],
          otherImpacts: [newRtiImpact]);
    }
  
    BackendImpact _nativeTypeCheck;
  