MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / IsComprehensionDefinedField

Function IsComprehensionDefinedField

tools/cel_field_extractor.cc:30–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28namespace {
29
30bool IsComprehensionDefinedField(const cel::NavigableProtoAstNode& node) {
31 const cel::NavigableProtoAstNode* current_node = &node;
32
33 while (current_node->parent() != nullptr) {
34 current_node = current_node->parent();
35
36 if (current_node->node_kind() != cel::NodeKind::kComprehension) {
37 continue;
38 }
39
40 std::string ident_name = node.expr()->ident_expr().name();
41 bool iter_var_match =
42 ident_name == current_node->expr()->comprehension_expr().iter_var();
43 bool iter_var2_match =
44 ident_name == current_node->expr()->comprehension_expr().iter_var2();
45 bool accu_var_match =
46 ident_name == current_node->expr()->comprehension_expr().accu_var();
47
48 if (iter_var_match || iter_var2_match || accu_var_match) {
49 return true;
50 }
51 }
52
53 return false;
54}
55
56} // namespace
57

Callers 1

ExtractFieldPathsFunction · 0.85

Calls 4

parentMethod · 0.80
node_kindMethod · 0.80
nameMethod · 0.45
exprMethod · 0.45

Tested by

no test coverage detected