| 218 | } |
| 219 | |
| 220 | absl::Status AddLogicalOps(TypeCheckerBuilder& builder) { |
| 221 | FunctionDecl not_op; |
| 222 | not_op.set_name(StandardFunctions::kNot); |
| 223 | CEL_RETURN_IF_ERROR(not_op.AddOverload( |
| 224 | MakeOverloadDecl(StandardOverloadIds::kNot, BoolType(), BoolType()))); |
| 225 | |
| 226 | CEL_RETURN_IF_ERROR(builder.AddFunction(std::move(not_op))); |
| 227 | |
| 228 | FunctionDecl and_op; |
| 229 | and_op.set_name(StandardFunctions::kAnd); |
| 230 | CEL_RETURN_IF_ERROR(and_op.AddOverload(MakeOverloadDecl( |
| 231 | StandardOverloadIds::kAnd, BoolType(), BoolType(), BoolType()))); |
| 232 | CEL_RETURN_IF_ERROR(builder.AddFunction(std::move(and_op))); |
| 233 | |
| 234 | FunctionDecl or_op; |
| 235 | or_op.set_name(StandardFunctions::kOr); |
| 236 | CEL_RETURN_IF_ERROR(or_op.AddOverload(MakeOverloadDecl( |
| 237 | StandardOverloadIds::kOr, BoolType(), BoolType(), BoolType()))); |
| 238 | CEL_RETURN_IF_ERROR(builder.AddFunction(std::move(or_op))); |
| 239 | |
| 240 | FunctionDecl conditional_op; |
| 241 | conditional_op.set_name(StandardFunctions::kTernary); |
| 242 | CEL_RETURN_IF_ERROR(conditional_op.AddOverload( |
| 243 | MakeOverloadDecl(StandardOverloadIds::kConditional, TypeParamA(), |
| 244 | BoolType(), TypeParamA(), TypeParamA()))); |
| 245 | CEL_RETURN_IF_ERROR(builder.AddFunction(std::move(conditional_op))); |
| 246 | |
| 247 | FunctionDecl not_strictly_false; |
| 248 | not_strictly_false.set_name(StandardFunctions::kNotStrictlyFalse); |
| 249 | CEL_RETURN_IF_ERROR(not_strictly_false.AddOverload(MakeOverloadDecl( |
| 250 | StandardOverloadIds::kNotStrictlyFalse, BoolType(), BoolType()))); |
| 251 | CEL_RETURN_IF_ERROR(builder.AddFunction(std::move(not_strictly_false))); |
| 252 | |
| 253 | FunctionDecl not_strictly_false_deprecated; |
| 254 | not_strictly_false_deprecated.set_name( |
| 255 | StandardFunctions::kNotStrictlyFalseDeprecated); |
| 256 | CEL_RETURN_IF_ERROR(not_strictly_false_deprecated.AddOverload( |
| 257 | MakeOverloadDecl(StandardOverloadIds::kNotStrictlyFalseDeprecated, |
| 258 | BoolType(), BoolType()))); |
| 259 | CEL_RETURN_IF_ERROR( |
| 260 | builder.AddFunction(std::move(not_strictly_false_deprecated))); |
| 261 | |
| 262 | return absl::OkStatus(); |
| 263 | } |
| 264 | |
| 265 | absl::Status AddTypeConversions(TypeCheckerBuilder& builder) { |
| 266 | FunctionDecl to_dyn; |
no test coverage detected