diff --git a/eval/eval/function_step.cc b/eval/eval/function_step.cc index 0cbf11bc7..782239a89 100644 --- a/eval/eval/function_step.cc +++ b/eval/eval/function_step.cc @@ -46,10 +46,11 @@ using ::cel::runtime_internal::CreateNoMatchingOverloadError; // errors or unknown sets must be allowed as a non-strict function. bool ShouldAcceptOverload(const cel::FunctionDescriptor& descriptor, absl::Span arguments) { - for (size_t i = 0; i < arguments.size(); i++) { - if (arguments[i]->Is() || - arguments[i]->Is()) { - return !descriptor.is_strict(); + if (descriptor.is_strict()) { + for (const auto& argument : arguments) { + if (argument.IsError() || argument.IsUnknown()) { + return false; + } } } return true;