summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/expression.h
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2016-07-22 14:44:48 -0400
committerDavid Storch <david.storch@10gen.com>2016-07-22 16:56:58 -0400
commite50989dac9846041fe46047a3d30a8d6fb6476d8 (patch)
treea95ef7f5676f62e3665c3f1475c7ca333d6e4866 /src/mongo/db/pipeline/expression.h
parent4e1dacf63d435c91b8ae33c2982d13b3ca87a6d9 (diff)
downloadmongo-e50989dac9846041fe46047a3d30a8d6fb6476d8.tar.gz
SERVER-23349 make ExpressionZip and ExpressionSwitch inherit directly from Expression
Diffstat (limited to 'src/mongo/db/pipeline/expression.h')
-rw-r--r--src/mongo/db/pipeline/expression.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/mongo/db/pipeline/expression.h b/src/mongo/db/pipeline/expression.h
index a324cd43b5a..918ac7a6741 100644
--- a/src/mongo/db/pipeline/expression.h
+++ b/src/mongo/db/pipeline/expression.h
@@ -346,10 +346,7 @@ public:
static ExpressionVector parseArguments(BSONElement bsonExpr, const VariablesParseState& vps);
- // TODO SERVER-23349: Currently there are subclasses which derive from this base class that
- // require custom logic for expression context injection. Consider making those classes inherit
- // directly from Expression so that this method can be marked 'final' rather than 'override'.
- void doInjectExpressionContext() override;
+ void doInjectExpressionContext() final;
protected:
ExpressionNary() {}
@@ -1279,7 +1276,7 @@ public:
};
-class ExpressionSwitch final : public ExpressionFixedArity<ExpressionSwitch, 1> {
+class ExpressionSwitch final : public Expression {
public:
void addDependencies(DepsTracker* deps) const final;
Value evaluateInternal(Variables* vars) const final;
@@ -1287,7 +1284,6 @@ public:
static boost::intrusive_ptr<Expression> parse(BSONElement expr,
const VariablesParseState& vpsIn);
Value serialize(bool explain) const final;
- const char* getOpName() const final;
void doInjectExpressionContext() final;
@@ -1376,7 +1372,7 @@ public:
};
-class ExpressionZip final : public ExpressionFixedArity<ExpressionZip, 1> {
+class ExpressionZip final : public Expression {
public:
void addDependencies(DepsTracker* deps) const final;
Value evaluateInternal(Variables* vars) const final;
@@ -1384,7 +1380,6 @@ public:
static boost::intrusive_ptr<Expression> parse(BSONElement expr,
const VariablesParseState& vpsIn);
Value serialize(bool explain) const final;
- const char* getOpName() const final;
void doInjectExpressionContext() final;