7 #include <hilti/ast/ctor.h> 8 #include <hilti/ast/ctors/null.h> 9 #include <hilti/ast/expressions/ctor.h> 10 #include <hilti/ast/type.h> 11 #include <hilti/ast/types/auto.h> 12 #include <hilti/ast/types/reference.h> 22 const Type& dereferencedType()
const {
return child<Type>(0); }
24 bool operator==(
const StrongReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
27 const Type&
type()
const {
return child<Type>(1); }
32 bool isLhs()
const {
return false; }
37 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
49 const Type& dereferencedType()
const {
return child<Type>(0); }
51 bool operator==(
const WeakReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
54 const Type&
type()
const {
return child<Type>(1); }
59 bool isLhs()
const {
return false; }
64 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
77 const Type& dereferencedType()
const {
return child<type::ValueReference>(0).dereferencedType(); }
78 const Expression& expression()
const {
return child<Expression>(1); }
82 bool operator==(
const ValueReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
85 const Type&
type()
const {
return child<Type>(0); }
89 bool isLhs()
const {
return false; }
94 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
Definition: reference.h:17
WeakReference(const Type &t, const Meta &m=Meta())
Definition: reference.h:47
bool isConstant() const
Definition: reference.h:30
const Type & type() const
Definition: reference.h:54
Definition: optional.h:79
auto properties() const
Definition: reference.h:97
const auto & children() const
Definition: node.h:472
const Type & type() const
Definition: reference.h:85
auto isEqual(const Ctor &other) const
Definition: reference.h:94
auto properties() const
Definition: reference.h:67
auto isTemporary() const
Definition: reference.h:61
auto isEqual(const Ctor &other) const
Definition: reference.h:64
bool isConstant() const
Definition: reference.h:87
Definition: reference.h:82
auto isTemporary() const
Definition: reference.h:34
const Type & type() const
Definition: reference.h:27
bool isLhs() const
Definition: reference.h:32
auto isEqual(const Ctor &other) const
Definition: reference.h:37
StrongReference(const Type &t, const Meta &m=Meta())
Definition: reference.h:20
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:98
ValueReference(Expression e, Meta m=Meta())
Definition: reference.h:74
auto isTemporary() const
Definition: reference.h:91
auto properties() const
Definition: reference.h:40
bool isLhs() const
Definition: reference.h:59
bool isLhs() const
Definition: reference.h:89
bool isConstant() const
Definition: reference.h:57
Definition: reference.h:71
Definition: reference.h:44