aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2022-12-28 11:53:45 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2022-12-28 11:53:45 +0300
commit8a658f1fe52a945383c412b8d610d43b0536c0ba (patch)
tree653964a37b0b01aac2367e35f88be9b386202c7b
parenta12e8abb3ee8917dde67b5ea82b3d6b3880140d5 (diff)
downloadydb-8a658f1fe52a945383c412b8d610d43b0536c0ba.tar.gz
add validation
-rw-r--r--ydb/library/yql/ast/yql_expr_builder.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/ydb/library/yql/ast/yql_expr_builder.cpp b/ydb/library/yql/ast/yql_expr_builder.cpp
index 4b22308b997..9b17f803382 100644
--- a/ydb/library/yql/ast/yql_expr_builder.cpp
+++ b/ydb/library/yql/ast/yql_expr_builder.cpp
@@ -368,6 +368,7 @@ TExprNodeReplaceBuilder TExprNodeBuilder::ApplyPartial(ui32 index, TExprNode::TP
Y_ENSURE(Container->ChildrenSize() == index + (Container->IsLambda() ? 1U : 0U),
"Container position mismatch, expected: " << Container->ChildrenSize() <<
", actual: " << index);
+ Y_ENSURE(!args || args->IsArguments());
return TExprNodeReplaceBuilder(this, Container, std::move(args), std::move(body));
}
@@ -376,18 +377,21 @@ TExprNodeReplaceBuilder TExprNodeBuilder::ApplyPartial(ui32 index, TExprNode::TP
Y_ENSURE(Container->ChildrenSize() == index + (Container->IsLambda() ? 1U : 0U),
"Container position mismatch, expected: " << Container->ChildrenSize() <<
", actual: " << index);
+ Y_ENSURE(!args || args->IsArguments());
return TExprNodeReplaceBuilder(this, Container, std::move(args), std::move(body));
}
TExprNodeReplaceBuilder TExprNodeBuilder::ApplyPartial(TExprNode::TPtr args, TExprNode::TPtr body) {
Y_ENSURE(!Container || Container->Type() == TExprNode::Lambda, "No container expected");
Y_ENSURE(!CurrentNode, "Node is already build");
+ Y_ENSURE(!args || args->IsArguments());
return TExprNodeReplaceBuilder(this, Container, std::move(args), std::move(body));
}
TExprNodeReplaceBuilder TExprNodeBuilder::ApplyPartial(TExprNode::TPtr args, TExprNode::TListType body) {
Y_ENSURE(!Container || Container->Type() == TExprNode::Lambda, "No container expected");
Y_ENSURE(!CurrentNode, "Node is already build");
+ Y_ENSURE(!args || args->IsArguments());
return TExprNodeReplaceBuilder(this, Container, std::move(args), std::move(body));
}