8 #include <hilti/ast/declaration.h> 9 #include <hilti/ast/expression.h> 10 #include <hilti/ast/id.h> 11 #include <hilti/ast/types/auto.h> 20 :
DeclarationBase(nodes(std::move(
id), std::move(type), std::move(value)), std::move(m)), _linkage(linkage) {}
22 Constant(
ID id, hilti::Expression value, Linkage linkage = Linkage::Private,
Meta m =
Meta())
25 const auto& value()
const {
return child<hilti::Expression>(2); }
27 const auto& type()
const {
28 if (
auto t =
children()[1].tryAs<hilti::Type>() )
31 return value().type();
34 void setValue(
const hilti::Expression& i) {
children()[2] = i; }
36 bool operator==(
const Constant& other)
const {
return id() == other.
id() && value() == other.value(); }
41 const ID&
id()
const {
return child<ID>(0); }
43 Linkage
linkage()
const {
return _linkage; }
const ID & id() const
Definition: constant.h:41
Definition: declaration.h:54
const Node none
Definition: node.cc:14
const auto & children() const
Definition: node.h:472
Definition: declaration.h:88
std::string displayName() const
Definition: constant.h:45
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:98
auto properties() const
Definition: constant.h:50
Linkage linkage() const
Definition: constant.h:43
auto isEqual(const Declaration &other) const
Definition: constant.h:47
Definition: constant.h:16
Definition: declaration.h:19
bool isConstant() const
Definition: constant.h:39