diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-12-28 11:53:45 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-12-28 11:53:45 +0300 |
commit | 8a658f1fe52a945383c412b8d610d43b0536c0ba (patch) | |
tree | 653964a37b0b01aac2367e35f88be9b386202c7b | |
parent | a12e8abb3ee8917dde67b5ea82b3d6b3880140d5 (diff) | |
download | ydb-8a658f1fe52a945383c412b8d610d43b0536c0ba.tar.gz |
add validation
-rw-r--r-- | ydb/library/yql/ast/yql_expr_builder.cpp | 4 |
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)); } |