7 #include <hilti/ast/declaration.h> 8 #include <hilti/ast/expression.h> 9 #include <hilti/ast/id.h> 10 #include <hilti/ast/node-ref.h> 11 #include <hilti/ast/node.h> 12 #include <hilti/ast/types/auto.h> 13 #include <hilti/base/logger.h> 16 namespace expression {
23 const auto& id()
const {
return child<ID>(0); }
24 const auto& declaration()
const {
return _d->as<
Declaration>(); }
25 const auto& declarationRef()
const {
return _d; }
27 bool operator==(
const ResolvedID& other)
const {
28 return id() == other.id() && declaration() == other.declaration();
32 bool isLhs()
const {
return ! declaration().isConstant(); }
40 auto isEqual(
const Expression& other)
const {
return node::isEqual(
this, other); }
54 const auto& id()
const {
return child<ID>(0); }
56 bool operator==(
const UnresolvedID& other)
const {
return id() == other.id(); }
59 bool isLhs()
const {
return true; }
61 const Type&
type()
const {
return child<Type>(1); }
63 auto isEqual(
const Expression& other)
const {
return node::isEqual(
this, other); }
Definition: declaration.h:53
Definition: expression.h:17
auto properties() const
Definition: id.h:43
auto isEqual(const Expression &other) const
Definition: id.h:40
bool isTemporary() const
Definition: id.h:34
auto properties() const
Definition: id.h:66
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:99
const Type & type() const
Definition: id.cc:12
bool isLhs() const
Definition: id.h:32
Definition: node-ref.h:44
bool isConstant() const
Definition: id.cc:33
uint64_t rid() const
Definition: node-ref.h:60