Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r50271:ea6c0a78b1e6 Date: 2011-12-07 17:39 +0100 http://bitbucket.org/pypy/pypy/changeset/ea6c0a78b1e6/
Log: Wrong logic. Must only call ann.complete() once at the end. diff --git a/pypy/objspace/fake/objspace.py b/pypy/objspace/fake/objspace.py --- a/pypy/objspace/fake/objspace.py +++ b/pypy/objspace/fake/objspace.py @@ -232,28 +232,22 @@ if argtypes is None: nb_args = func.func_code.co_argcount argtypes = [W_Root] * nb_args - else: - func = lambda: None - argtypes = [] # t = TranslationContext() self.t = t # for debugging ann = t.buildannotator() + if func is not None: + ann.build_types(func, argtypes, complete_now=False) # + # annotate all _seen_extras, knowing that annotating some may + # grow the list done = 0 - while True: - # annotate all _seen_extras, knowing that annotating some may - # grow the list - while done < len(self._seen_extras): - print self._seen_extras - ann.build_types(self._seen_extras[done], [], - complete_now=False) - done += 1 - # when the list stops growing, really complete - ann.build_types(func, argtypes, complete_now=True) - # if the list did not grow because of completion, we are done - if done == len(self._seen_extras): - break + while done < len(self._seen_extras): + print self._seen_extras + ann.build_types(self._seen_extras[done], [], + complete_now=False) + done += 1 + ann.complete() #t.viewcg() t.buildrtyper().specialize() t.checkgraphs() diff --git a/pypy/objspace/fake/test/test_zmodules.py b/pypy/objspace/fake/test/test_zmodules.py --- a/pypy/objspace/fake/test/test_zmodules.py +++ b/pypy/objspace/fake/test/test_zmodules.py @@ -7,6 +7,9 @@ def test__random(): checkmodule('_random') +def test_cStringIO(): + checkmodule('cStringIO') + def test_itertools(): checkmodule('itertools') _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit