anchor.diff:        //  value being referenced might not be located there (if it's referenced
         //  through a const variable).
         for (var keyValue in map.keys) {
  -        if (mapUniqueKeys!.containsKey(keyValue)) {
  -          mapDuplicateKeyExpressions![element.expression] =
  -              mapUniqueKeys![keyValue]!;
  +        var existingKey = config.uniqueKeys[keyValue];
  +        if (existingKey != null) {
  +          config.duplicateKeys[element.expression] = existingKey;
           } else {
  -          mapUniqueKeys![keyValue] = element.expression;
  +          config.uniqueKeys[keyValue] = element.expression;
           }
         }
         return true;
  
positive.code:   bool _validateListOrSetSpread(SpreadElement element, DartObjectImpl value) {
      var listValue = value.toListValue();
      var setValue = value.toSetValue();
  
      if (listValue == null && setValue == null) {
        if (value.isNull && _isNullableSpread(element)) {
          return true;
        }
        verifier._errorReporter.reportErrorForNode(
  
negative.code:       verifier._reportErrorIfFromDeferredLibrary(element.expression,
            CompileTimeErrorCode.SPREAD_EXPRESSION_FROM_DEFERRED_LIBRARY);
  
        if (listElementType != null || setConfig != null) {
          return _validateListOrSetSpread(element, value);
        }
  
        var mapConfig = this.mapConfig;
        if (mapConfig != null) {
          return _validateMapSpread(mapConfig, element, value);
        }
  
        return true;
  