From 40ee59f0c302b7911b11f2e4be92bf34a825fef4 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 11 May 2020 15:59:15 -0700 Subject: [PATCH] Remove unused FlattenExpr --- src/Expr.cc | 51 +-------------------------------------------------- src/Expr.h | 13 ------------- 2 files changed, 1 insertion(+), 63 deletions(-) diff --git a/src/Expr.cc b/src/Expr.cc index 271cff9e80..9a8bec21e1 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -37,7 +37,7 @@ const char* expr_name(BroExprTag t) "$=", "in", "<<>>", "()", "function()", "event", "schedule", "coerce", "record_coerce", "table_coerce", "vector_coerce", - "sizeof", "flatten", "cast", "is", "[:]=" + "sizeof", "cast", "is", "[:]=" }; if ( int(t) >= NUM_EXPRS ) @@ -410,8 +410,6 @@ void UnaryExpr::ExprDescribe(ODesc* d) const { if ( is_coerce ) d->Add("(coerce "); - else if ( Tag() == EXPR_FLATTEN ) - d->Add("flatten "); else if ( Tag() != EXPR_REF ) d->Add(expr_name(Tag())); } @@ -3787,53 +3785,6 @@ IntrusivePtr VectorCoerceExpr::Fold(Val* v) const return make_intrusive(GetType()); } -FlattenExpr::FlattenExpr(IntrusivePtr arg_op) - : UnaryExpr(EXPR_FLATTEN, std::move(arg_op)) - { - if ( IsError() ) - return; - - const auto& t = op->GetType(); - - if ( t->Tag() != TYPE_RECORD ) - Internal("bad type in FlattenExpr::FlattenExpr"); - - RecordType* rt = t->AsRecordType(); - num_fields = rt->NumFields(); - - auto tl = make_intrusive(); - - for ( int i = 0; i < num_fields; ++i ) - tl->Append(rt->GetFieldType(i)); - - Unref(rt); - SetType(std::move(tl)); - } - -IntrusivePtr FlattenExpr::Fold(Val* v) const - { - RecordVal* rv = v->AsRecordVal(); - auto l = make_intrusive(TYPE_ANY); - - for ( int i = 0; i < num_fields; ++i ) - { - if ( Val* fv = rv->Lookup(i) ) - { - l->Append({NewRef{}, fv}); - continue; - } - - const RecordType* rv_t = rv->GetType()->AsRecordType(); - if ( const Attr* fa = rv_t->FieldDecl(i)->FindAttr(ATTR_DEFAULT) ) - l->Append(fa->AttrExpr()->Eval(nullptr)); - - else - RuntimeError("missing field value"); - } - - return l; - } - ScheduleTimer::ScheduleTimer(const EventHandlerPtr& arg_event, zeek::Args arg_args, double t) : Timer(t, TIMER_SCHEDULE), diff --git a/src/Expr.h b/src/Expr.h index a00304009c..79ee9d9bd1 100644 --- a/src/Expr.h +++ b/src/Expr.h @@ -50,7 +50,6 @@ enum BroExprTag : int { EXPR_TABLE_COERCE, EXPR_VECTOR_COERCE, EXPR_SIZE, - EXPR_FLATTEN, EXPR_CAST, EXPR_IS, EXPR_INDEX_SLICE_ASSIGN, @@ -735,18 +734,6 @@ protected: IntrusivePtr Fold(Val* v) const override; }; -// An internal operator for flattening array indices that are records -// into a list of individual values. -class FlattenExpr final : public UnaryExpr { -public: - explicit FlattenExpr(IntrusivePtr op); - -protected: - IntrusivePtr Fold(Val* v) const override; - - int num_fields; -}; - class ScheduleTimer final : public Timer { public: ScheduleTimer(const EventHandlerPtr& event, zeek::Args args, double t);