7 #include <hilti/ast/expression.h> 10 namespace expression {
16 :
NodeBase({std::move(e), type::nonConstant(std::move(t))}, std::move(m)) {}
18 const auto& expression()
const {
return child<Expression>(0); }
20 bool operator==(
const Coerced& other)
const {
return expression() == other.expression() &&
type() == other.
type(); }
23 bool isLhs()
const {
return expression().isLhs(); }
27 const Type&
type()
const {
return child<Type>(1); }
29 auto isConstant()
const {
return expression().isConstant(); }
31 auto isEqual(
const Expression& other)
const {
return node::isEqual(
this, other); }
const Type & type() const
Definition: coerced.h:27
auto properties() const
Definition: coerced.h:34
auto isConstant() const
Definition: coerced.h:29
Definition: expression.h:17
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:99
bool isTemporary() const
Definition: coerced.h:25
bool isLhs() const
Definition: coerced.h:23
auto isEqual(const Expression &other) const
Definition: coerced.h:31