Move ensureDecompiled() calls to mergeObjects(). This makes more sense, but still needs the hasattr checks.

This commit is contained in:
justvanrossum 2020-01-29 11:05:01 +01:00
parent 033145adf6
commit 51ff4a5d69

View File

@ -60,6 +60,11 @@ class Merger(object):
return _default
def mergeObjects(self, out, lst, exclude=()):
if hasattr(out, "ensureDecompiled"):
out.ensureDecompiled()
for item in lst:
if hasattr(item, "ensureDecompiled"):
item.ensureDecompiled()
keys = sorted(vars(out).keys())
assert all(keys == sorted(vars(v).keys()) for v in lst), \
(keys, [sorted(vars(v).keys()) for v in lst])
@ -87,11 +92,6 @@ class Merger(object):
def mergeThings(self, out, lst):
try:
if hasattr(out, "ensureDecompiled"):
out.ensureDecompiled()
for item in lst:
if hasattr(item, "ensureDecompiled"):
item.ensureDecompiled()
assert allEqualTo(out, lst, type), (out, lst)
mergerFunc = self.mergersFor(out).get(None, None)
if mergerFunc is not None: