anchor.diff:    void visitReturnStatement(ReturnStatement node) {
       _checkReturnOrYield(node.expression, node);
       node.visitChildren(this);
  -  }
  -
  -  @override
  -  void visitSetLiteral(SetLiteral node) {
  -    DartType type = DynamicTypeImpl.instance;
  -    if (node.typeArguments != null) {
  -      NodeList<TypeAnnotation> targs = node.typeArguments.arguments;
  -      if (targs.length > 0) {
  -        type = targs[0].type;
  -      }
  -    } else {
  -      DartType staticType = node.staticType;
  -      if (staticType is InterfaceType) {
  -        List<DartType> typeArguments = staticType.typeArguments;
  -        if (typeArguments != null && typeArguments.length > 0) {
  -          type = typeArguments[0];
  -        }
  -      }
  -    }
  -    NodeList<Expression> elements = node.elements;
  -    for (int i = 0; i < elements.length; i++) {
  -      checkArgument(elements[i], type);
  -    }
  -    super.visitSetLiteral(node);
     }
   
     @override
  
positive.code:       if (expr is ListLiteral) {
          _recordMessage(
              expr, StrongModeCode.INVALID_CAST_LITERAL_LIST, [from, to]);
        } else if (expr is MapLiteral) {
          _recordMessage(
              expr, StrongModeCode.INVALID_CAST_LITERAL_MAP, [from, to]);
        } else if (expr is SetLiteral) {
          _recordMessage(
              expr, StrongModeCode.INVALID_CAST_LITERAL_SET, [from, to]);
        } else {
          _recordMessage(
              expr, StrongModeCode.INVALID_CAST_LITERAL, [expr, from, to]);
  
negative.code:   }
  
    @override
    visitSetOrMapLiteral(SetOrMapLiteral node) {
      if (node.typeArguments == null) {
        super.visitSetOrMapLiteral(node);
  