7 #include <hilti/ast/ctor.h> 8 #include <hilti/ast/ctors/null.h> 9 #include <hilti/ast/expressions/ctor.h> 10 #include <hilti/ast/types/reference.h> 21 Type dereferencedType()
const {
return type::effectiveType(child<Type>(0)); }
23 bool operator==(
const StrongReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
31 bool isLhs()
const {
return false; }
36 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
48 Type dereferencedType()
const {
return type::effectiveType(child<Type>(0)); }
50 bool operator==(
const WeakReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
58 bool isLhs()
const {
return false; }
63 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
75 const Expression& expression()
const {
return child<Expression>(0); }
76 Type dereferencedType()
const {
return child<Expression>(0).
type(); }
78 bool operator==(
const ValueReference& other)
const {
return dereferencedType() == other.dereferencedType(); }
85 bool isLhs()
const {
return false; }
90 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
Definition: reference.h:16
WeakReference(Type t, Meta m=Meta())
Definition: reference.h:46
Type type() const
Definition: reference.h:53
StrongReference(Type t, Meta m=Meta())
Definition: reference.h:19
bool isConstant() const
Definition: reference.h:29
auto properties() const
Definition: reference.h:93
Definition: reference.h:16
auto isEqual(const Ctor &other) const
Definition: reference.h:90
auto properties() const
Definition: reference.h:66
auto isTemporary() const
Definition: reference.h:60
auto isEqual(const Ctor &other) const
Definition: reference.h:63
bool isConstant() const
Definition: reference.h:83
Definition: reference.h:86
auto isTemporary() const
Definition: reference.h:33
bool isLhs() const
Definition: reference.h:31
auto isEqual(const Ctor &other) const
Definition: reference.h:36
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:83
ValueReference(Expression e, Meta m=Meta())
Definition: reference.h:73
auto isTemporary() const
Definition: reference.h:87
auto properties() const
Definition: reference.h:39
bool isLhs() const
Definition: reference.h:58
bool isLhs() const
Definition: reference.h:85
bool isConstant() const
Definition: reference.h:56
auto & meta() const
Definition: node.h:449
Definition: reference.h:53
Definition: reference.h:70
Definition: reference.h:43
Type type() const
Definition: reference.h:81
Type type() const
Definition: reference.h:26