AbstractValueKind meet_like_operation()

in include/PatriciaTreeMapAbstractEnvironment.h [289:307]


  AbstractValueKind meet_like_operation(
      const MapValue& other,
      std::function<Domain(const Domain&, const Domain&)> operation) {
    try {
      m_map.union_with(
          [&operation](const Domain& x, const Domain& y) {
            Domain result = operation(x, y);
            if (result.is_bottom()) {
              throw value_is_bottom();
            }
            return result;
          },
          other.m_map);
      return kind();
    } catch (const value_is_bottom&) {
      clear();
      return AbstractValueKind::Bottom;
    }
  }