@Override
      public void visitPyYieldExpression(@NotNull PyYieldExpression node) {
        final PyExpression expr = node.getExpression();
        final PyType type = expr != null ? context.getType(expr) : null;

        if (node.isDelegating()) {
          if (type instanceof PyCollectionType) {
            types.add(((PyCollectionType)type).getIteratedItemType());
          }
          else if (ArrayUtil.contains(type, cache.getListType(), cache.getDictType(), cache.getSetType(), cache.getTupleType())) {
            types.add(null);
          }
          else {
            types.add(type);
          }
        }
        else {
          types.add(type);
        }
      }
@Override
      public void visitPyYieldExpression(@NotNull PyYieldExpression node)