aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/core/yql_expr_constraint.h
blob: 4fe5f8461107a2a9652ccbc734e2274c079679ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

#include <yql/essentials/core/yql_type_annotation.h>
#include <yql/essentials/core/yql_graph_transformer.h>
#include <yql/essentials/ast/yql_expr.h>

#include <util/generic/ptr.h>

#include <initializer_list>

namespace NYql {

TAutoPtr<IGraphTransformer> CreateConstraintTransformer(TTypeAnnotationContext& types, bool instantOnly = false, bool subGraph = false, bool disableCheck = false);
TAutoPtr<IGraphTransformer> CreateDefCallableConstraintTransformer();

IGraphTransformer::TStatus UpdateLambdaConstraints(const TExprNode& lambda);
IGraphTransformer::TStatus UpdateLambdaConstraints(TExprNode::TPtr& lambda, TExprContext& ctx, const TArrayRef<const TConstraintNode::TListType>& constraints);
IGraphTransformer::TStatus UpdateAllChildLambdasConstraints(const TExprNode& node);

}