7 #include <hilti/ast/expression.h>
8 #include <hilti/ast/type.h>
9 #include <hilti/ast/types/result.h>
10 #include <hilti/ast/types/void.h>
12 namespace hilti::expression {
17 auto condition()
const {
return child<Expression>(1); }
18 auto error()
const {
return child<Expression>(2); }
25 static auto create(ASTContext* ctx, Expression* cond, Expression* error, Meta
meta = {}) {
31 return ctx->make<ConditionTest>(ctx, {result, cond, error}, std::move(
meta));
35 ConditionTest(ASTContext* ctx, Nodes
children, Meta
meta)
36 : Expression(ctx, NodeTags, std::move(
children), std::move(
meta)) {}
38 HILTI_NODE_1(expression::ConditionTest, Expression,
final);
Definition: ast-context.h:121
Definition: expression.h:15
void setChild(ASTContext *ctx, size_t idx, Node *n)
Definition: node.h:602
const auto & children() const
Definition: node.h:364
const auto & meta() const
Definition: node.h:306
static auto create(ASTContext *ctx, UnqualifiedType *t, Constness const_, Meta m=Meta())
Definition: type.h:427
Definition: condition-test.h:15
QualifiedType * type() const final
Definition: condition-test.h:20