anchor.diff:            typeProvider, expectedType, _graph,
             typeArguments: [_currentMapKeyType, _currentMapValueType]);
   
  -      _handleAssignment(node.expression,
  +      spreadTypeDecorated = _handleAssignment(node.expression,
             destinationType: expectedDecoratedType);
       } else if (_typeSystem.isSubtypeOf(
           spreadType, typeProvider.iterableDynamicType)) {
  
positive.code:           typeProvider, expectedType, _graph,
            typeArguments: [_currentLiteralElementType]);
  
        _handleAssignment(node.expression,
            destinationType: expectedDecoratedType);
      } else {
        // Downcast. We can't assume nullability here, so do nothing.
      }
  
      if (!node.isNullAware) {
        _checkExpressionNotNull(node.expression);
      }
  
      return null;
  
negative.code:   /// value is non-null.
    ///
    /// Returns the decorated type of [expression].
    DecoratedType _checkExpressionNotNull(Expression expression,
        {DecoratedType sourceType}) {
      if (_isPrefix(expression)) {
        throw ArgumentError('cannot check non-nullability of a prefix');
      }
      sourceType ??= expression.accept(this);
      if (sourceType == null) {
        throw StateError('No type computed for ${expression.runtimeType} '
            '(${expression.toSource()}) offset=${expression.offset}');
  