if self.slot:
atom += ":%s" % self.slot
atom += str(self.use.evaluate_conditionals(use))
- return Atom(atom, self)
+ return Atom(atom, unevaluated_atom=self)
def violated_conditionals(self, other_use, parent_use=None):
"""
if self.slot:
atom += ":%s" % self.slot
atom += str(self.use.violated_conditionals(other_use, parent_use))
- return Atom(atom, self)
+ return Atom(atom, unevaluated_atom=self)
+
+ def _eval_qa_conditionals(self, use_mask, use_force):
+ if not (self.use and self.use.conditional):
+ return self
+ atom = remove_slot(self)
+ if self.slot:
+ atom += ":%s" % self.slot
+ atom += str(self.use._eval_qa_conditionals(use_mask, use_force))
+ return Atom(atom, unevaluated_atom=self)
def __copy__(self):
"""Immutable, so returns self."""
raise ParseError(
_("invalid atom: '%s'") % (x,))
- if repoman and x.use and x.use.conditional:
- evaluated_atom = remove_slot(x)
- if x.slot:
- evaluated_atom += ":%s" % x.slot
- evaluated_atom += str(x.use._eval_qa_conditionals(
- use_mask, use_force))
- x = Atom(evaluated_atom)
+ if repoman:
+ x = x._eval_qa_conditionals(use_mask, use_force)
if not repoman and \
myuse is not None and isinstance(x, Atom) and x.use: