anchor.diff:          var keyType = nodeType.typeArguments[0];
           var valueType = nodeType.typeArguments[1];
           bool reportEqualKeys = true;
  -        var duplicateKeyElements = <Expression, Expression>{};
  +        var config = _MapVerifierConfig(
  +          keyType: keyType,
  +          valueType: valueType,
  +        );
           var verifier = _ConstLiteralVerifier(
             this,
             errorCode: CompileTimeErrorCode.NON_CONSTANT_MAP_ELEMENT,
  -          forMap: true,
  -          mapKeyType: keyType,
  -          mapValueType: valueType,
  -          mapUniqueKeys: <DartObject, Expression>{},
  -          mapDuplicateKeyExpressions: duplicateKeyElements,
  +          mapConfig: config,
           );
           for (CollectionElement entry in node.elements) {
             verifier.verify(entry);
           }
           if (reportEqualKeys) {
  -          for (var duplicateEntry in duplicateKeyElements.entries) {
  +          for (var duplicateEntry in config.duplicateKeys.entries) {
               _errorReporter.reportError(_diagnosticFactory.equalKeysInConstMap(
                   _errorReporter.source,
                   duplicateEntry.key,
  
positive.code:       CompileTimeErrorCode.SET_ELEMENT_FROM_DEFERRED_LIBRARY,
      );
  
      if (setUniqueValues!.containsKey(value)) {
        setDuplicateExpressions![expression] = setUniqueValues![value]!;
      } else {
        setUniqueValues![value] = expression;
      }
  
      return true;
    }
  
    static bool _isNullableSpread(SpreadElement element) {
      return element.spreadOperator.type ==
          TokenType.PERIOD_PERIOD_PERIOD_QUESTION;
    }
  }
  
negative.code:   bool _validateListOrSetSpread(SpreadElement element, DartObjectImpl value) {
      var listValue = value.toListValue();
      var setValue = value.toSetValue();
      var iterableValue = listValue ?? setValue;
  
      if (iterableValue == null) {
        if (value.isNull && element.isNullAware) {
          return true;
        }
        verifier._errorReporter.reportErrorForNode(
  