From fcb07d795a74c46793acc35a6755cc3b1356308e Mon Sep 17 00:00:00 2001 From: Alexander Polyakov Date: Mon, 23 Mar 2026 16:36:30 +0300 Subject: [PATCH] [k2] add diagnostics for not found confdata key and wildcard --- runtime-light/stdlib/confdata/confdata-functions.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runtime-light/stdlib/confdata/confdata-functions.cpp b/runtime-light/stdlib/confdata/confdata-functions.cpp index b3e6c154e6..073730586b 100644 --- a/runtime-light/stdlib/confdata/confdata-functions.cpp +++ b/runtime-light/stdlib/confdata/confdata-functions.cpp @@ -77,6 +77,7 @@ kphp::coro::task f$confdata_get_value(string key) noexcept { kphp::log::assertion(maybe_confdata_value.fetch(tlf)); if (!maybe_confdata_value.opt_value) { // no such key + kphp::log::warning("key isn't found: {}", confdata_get.key.value); co_return mixed{}; } @@ -120,6 +121,11 @@ kphp::coro::task> f$confdata_get_values_by_any_wildcard(string wild tl::Dictionary dict_confdata_value{}; kphp::log::assertion(dict_confdata_value.fetch(tlf)); + if (dict_confdata_value.size() == 0) { + kphp::log::warning("wildcard doesn't match any key: {}", confdata_get_wildcard.wildcard.value); + co_return array{}; + } + array result{array_size{static_cast(dict_confdata_value.size()), false}}; std::ranges::for_each(dict_confdata_value, [&result, wildcard_size = wildcard_view.size()](const auto& dict_field) noexcept { kphp::log::assertion(dict_field.key.value.size() >= wildcard_size);