aboutsummaryrefslogtreecommitdiff
path: root/paludis/repositories/e/fix_locked_dependencies.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/repositories/e/fix_locked_dependencies.cc')
-rw-r--r--paludis/repositories/e/fix_locked_dependencies.cc12
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