407{
409 return {};
410
411 if (!e.module().has_value())
412 return {false};
413
414 auto module_toks =
416
417 if (dynamic_cast<const package *>(&e) != nullptr &&
419 module_toks.push_back(e.name());
420 }
421
423 [&e, &module_toks](const auto &modit) {
424 if (std::holds_alternative<std::string>(modit.value())) {
425 const auto &modit_str = std::get<std::string>(modit.value());
426 const auto modit_toks =
427 path::split(modit_str, path_type::kModule);
428
429 return e.module() == modit_str ||
430 util::starts_with(module_toks, modit_toks);
431 }
432
433 return std::get<common::regex>(modit.value()) %= e.module().value();
434 });
435
436 return result;
437}