Bug #254860 - Inside _expand_new_virtuals(), generate instances of Atom
authorZac Medico <zmedico@gentoo.org>
Wed, 14 Jan 2009 03:56:38 +0000 (03:56 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 14 Jan 2009 03:56:38 +0000 (03:56 -0000)
instead of plain strings, so calling code can assume that only Atom instances
will be returned when strict mode is enabled. (trunk r12495)

svn path=/main/branches/2.1.6/; revision=12505

pym/portage/__init__.py

index e94d617bd79fcb3dde8f6ff11af93c1365eca24d..2e33b330c4933a691476a8bfea3cf572e00e3bdc 100644 (file)
@@ -6351,13 +6351,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)