diff options
Diffstat (limited to 'paludis/repositories/e/fix_locked_dependencies.cc')
-rw-r--r-- | paludis/repositories/e/fix_locked_dependencies.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/paludis/repositories/e/fix_locked_dependencies.cc b/paludis/repositories/e/fix_locked_dependencies.cc index e92edfbf1..faeb2be3b 100644 --- a/paludis/repositories/e/fix_locked_dependencies.cc +++ b/paludis/repositories/e/fix_locked_dependencies.cc @@ -86,7 +86,12 @@ namespace { auto ss((*matches->last())->slot_key()->parse_value()); if (eapi.supported()->ebuild_options()->has_subslots()) - return std::make_shared<ELikeSlotExactFullRequirement>(ss.match_values(), spec->slot_requirement_ptr()); + { + if (eapi.supported()->package_dep_spec_parse_options()[epdso_allow_slot_equal_deps]) + return std::make_shared<ELikeSlotExactFullRequirement>(ss.match_values(), spec->slot_requirement_ptr()); + else + return std::make_shared<ELikeSlotExactFullRequirement>(ss.match_values(), std::make_shared<ELikeSlotUnknownRewrittenRequirement>(ss.match_values().first)); + } else return std::make_shared<ELikeSlotExactPartialRequirement>(ss.match_values().first, spec->slot_requirement_ptr()); } @@ -103,6 +108,11 @@ namespace { return rewrite(); } + + std::shared_ptr<const SlotRequirement> visit(const SlotUnknownRewrittenRequirement &) const PALUDIS_ATTRIBUTE((noreturn)) + { + throw InternalError(PALUDIS_HERE, "Should not be rewriting SlotUnknownRewrittenRequirement"); + } }; struct Fixer |