anchor.diff:        _checkForDeadNullCoalesce(node.leftOperand.staticType, node.rightOperand);
       }
       super.visitBinaryExpression(node);
  -  }
  -
  -  @override
  -  void visitAssignmentExpression(AssignmentExpression node) {
  -    TokenType operatorType = node.operator.type;
  -    if (operatorType == TokenType.QUESTION_QUESTION_EQ) {
  -      _checkForDeadNullCoalesce(
  -          node.leftHandSide.staticType, node.rightHandSide);
  -    }
  -    super.visitAssignmentExpression(node);
  -  }
  -
  -  void _checkForDeadNullCoalesce(TypeImpl lhsType, Expression rhs) {
  -    if (lhsType.nullability == Nullability.nonNullable) {
  -      _errorReporter.reportErrorForNode(HintCode.DEAD_CODE, rhs, []);
  -    }
     }
   
     /// For each block, this method reports and error on all statements between
  
positive.code: import 'package:analyzer/src/generated/type_system.dart';
  import 'package:analyzer/src/lint/linter.dart';
  import 'package:analyzer/src/workspace/workspace.dart';
  import 'package:path/path.dart' as path;
  
  export 'package:analyzer/src/dart/constant/constant_verifier.dart';
  
negative.code:         DartType elementType = literalType.typeArguments[0];
          DartType iterableType =
              typeProvider.iterableType.instantiate([elementType]);
          _pushCollectionTypesDownToAll(node.elements2,
              elementType: elementType, iterableType: iterableType);
        } else if (typeArguments.length == 2) {
          DartType keyType = typeArguments[0];
          DartType valueType = typeArguments[1];
          _pushCollectionTypesDownToAll(node.elements2,
              iterableType: literalType, keyType: keyType, valueType: valueType);
        }
        InferenceContext.setType(node, literalType);
      } else {
  