diff --git a/src/rule_with_operator.cc b/src/rule_with_operator.cc index 9c356b8fb..1fd095dd5 100644 --- a/src/rule_with_operator.cc +++ b/src/rule_with_operator.cc @@ -273,8 +273,8 @@ bool RuleWithOperator::evaluate(Transaction *trans, v = nullptr; continue; } - if (exclusion.contains(v) || - std::find_if(trans->m_ruleRemoveTargetByTag.begin(), + // If we get here, exclusion.contains(v) is false. + if (std::find_if(trans->m_ruleRemoveTargetByTag.begin(), trans->m_ruleRemoveTargetByTag.end(), [&, v, trans, this](const auto &m) -> bool { return containsTag(m.first, trans) && m.second == v->getKeyWithCollection(); diff --git a/src/variables/variable.h b/src/variables/variable.h index e47ed9590..a60b324f0 100644 --- a/src/variables/variable.h +++ b/src/variables/variable.h @@ -670,7 +670,7 @@ class Variables : public std::vector { [v](const Variable *m) { const auto *r = dynamic_cast(m); if (r) { - return !r->m_r.searchAll(v->getKey()).empty(); + return r->m_r.search(v->getKey()) != 0; } return v->getKeyWithCollection() == *m->m_fullName.get(); }) != end();