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> 23 const Type& dereferencedType()
const {
return child<Type>(0); }
25 bool operator==(
const StrongReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
28 const Type&
type()
const {
return child<Type>(1); }
33 bool isLhs()
const {
return false; }
38 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
50 const Type& dereferencedType()
const {
return child<Type>(0); }
52 bool operator==(
const WeakReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
55 const Type&
type()
const {
return child<Type>(1); }
60 bool isLhs()
const {
return false; }
65 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
78 const Type& dereferencedType()
const {
return child<type::ValueReference>(0).dereferencedType(); }
79 const Expression& expression()
const {
return child<Expression>(1); }
83 bool operator==(
const ValueReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
86 const Type&
type()
const {
return child<Type>(0); }
90 bool isLhs()
const {
return false; }
95 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
Definition: reference.h:18
WeakReference(Type t, Meta m=Meta())
Definition: reference.h:48
StrongReference(Type t, Meta m=Meta())
Definition: reference.h:21
bool isConstant() const
Definition: reference.h:31
const Type & type() const
Definition: reference.h:55
Definition: optional.h:79
auto properties() const
Definition: reference.h:98
const auto & children() const
Definition: node.h:470
const Type & type() const
Definition: reference.h:86
auto isEqual(const Ctor &other) const
Definition: reference.h:95
auto properties() const
Definition: reference.h:68
auto isTemporary() const
Definition: reference.h:62
auto isEqual(const Ctor &other) const
Definition: reference.h:65
bool isConstant() const
Definition: reference.h:88
Definition: reference.h:83
auto isTemporary() const
Definition: reference.h:35
const Type & type() const
Definition: reference.h:28
bool isLhs() const
Definition: reference.h:33
auto isEqual(const Ctor &other) const
Definition: reference.h:38
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:99
ValueReference(Expression e, Meta m=Meta())
Definition: reference.h:75
auto isTemporary() const
Definition: reference.h:92
auto properties() const
Definition: reference.h:41
bool isLhs() const
Definition: reference.h:60
bool isLhs() const
Definition: reference.h:90
bool isConstant() const
Definition: reference.h:58
Definition: reference.h:72
Definition: reference.h:45