Artifact 99140839cc8e0f7865c2a8f65b0549f3ebaf06b19e1a0a32096deeaa93288ba2:
- File
bs/llr/binaryop.h
— part of check-in
[75bcd81044]
at
2019-08-15 01:27:35
on branch trunk
—
- Implemented the DropValue() extension point, called when a previously pushed value is dropped without being used.
- ir, sema: the complexity of an ir expression is now directly counted by ir::Vector, so that we don't have to deal with it in every unification rule (and it was missing from most of them, which caused incorrect overload resolutions in some cases).
#ifndef EMPATHY_LLR_BINARYINSTR_H #define EMPATHY_LLR_BINARYINSTR_H namespace empathy::llr { class BinaryOp { public: template< typename L, typename R > BinaryOp( L&& lhs, R&& rhs ) : m_lhs( forward< L >( lhs ) ), m_rhs( forward< R >( rhs ) ) {} const auto& lhs() const { return m_lhs; } const auto& rhs() const { return m_rhs; } bool canBeExecuted() const; bool canBeEagerlyEvaluated() const; private: ir::Value m_lhs; ir::Value m_rhs; }; } #endif