9 #include <hilti/ast/ctor.h> 10 #include <hilti/ast/expression.h> 11 #include <hilti/ast/id.h> 12 #include <hilti/ast/types/auto.h> 13 #include <hilti/ast/types/struct.h> 24 const auto& id()
const {
return child<ID>(0); }
25 const auto& expression()
const {
return child<Expression>(1); }
30 bool operator==(
const Field& other)
const {
return id() == other.id() && expression() == other.expression(); }
39 Struct(std::vector<struct_::Field> f,
Meta m =
Meta()) :
NodeBase(nodes(type::auto_, std::move(f)), std::move(m)) {}
41 :
NodeBase(nodes(std::move(t), std::move(f)), std::move(m)) {}
44 auto fields()
const {
return children<struct_::Field>(1, -1); }
46 auto stype()
const {
return child<type::Struct>(0); }
50 for (
const auto& f : fields() ) {
60 bool operator==(
const Struct& other)
const {
return fields() == other.
fields(); }
63 const auto&
type()
const {
return child<Type>(0); }
68 auto isLhs()
const {
return false; }
72 auto isEqual(
const Ctor& other)
const {
return node::isEqual(
this, other); }
auto isEqual(const Ctor &other) const
Definition: struct.h:72
const Node none
Definition: node.cc:14
const auto & children() const
Definition: node.h:472
hilti::optional_ref< const struct_::Field > field(const ID &id) const
Definition: struct.h:49
auto fields() const
Definition: struct.h:44
auto properties() const
Definition: struct.h:28
Definition: optional-ref.h:22
auto isLhs() const
Definition: struct.h:68
std::map< std::string, node::detail::PropertyValue > Properties
Definition: node.h:98
auto isTemporary() const
Definition: struct.h:70
auto properties() const
Definition: struct.h:75
bool isConstant() const
Definition: struct.h:66
const auto & type() const
Definition: struct.h:63