Bug #254860 - Inside _expand_new_virtuals(), generate instances of Atom
authorZac Medico <zmedico@gentoo.org>
Tue, 13 Jan 2009 21:02:30 +0000 (21:02 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 13 Jan 2009 21:02:30 +0000 (21:02 -0000)
instead of plain strings, so calling code can assume that only Atom instances
will be returned when strict mode is enabled.

svn path=/main/trunk/; revision=12495

pym/portage/__init__.py

index 8b19354a4fac08d3ef6dfe94de11fffed4873482..52dbd6baf194a96dc9220a63bc5337b79cace04e 100644 (file)
@@ -6364,13 +6364,14 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
                                if len(virtual_atoms) == 1:
                                        # It wouldn't make sense to block all the components of a
                                        # compound virtual, so only a single atom block is allowed.
-                                       a.append("!" + virtual_atoms[0])
+                                       a.append(portage.dep.Atom("!" + virtual_atoms[0]))
                        else:
-                               mycheck[1].append("="+y[0]) # pull in the new-style virtual
+                               # pull in the new-style virtual
+                               mycheck[1].append(portage.dep.Atom("="+y[0]))
                                a.append(mycheck[1])
                # Plain old-style virtuals.  New-style virtuals are preferred.
                for y in mychoices:
-                       a.append(x.replace(mykey, y))
+                       a.append(portage.dep.Atom(x.replace(mykey, y, 1)))
                if isblocker and not a:
                        # Probably a compound virtual.  Pass the atom through unprocessed.
                        newsplit.append(x)