[pypy-svn] r26456 - in pypy/dist/pypy/translator/c: . test

tismer at codespeak.net tismer at codespeak.net
Thu Apr 27 20:18:02 CEST 2006


Author: tismer
Date: Thu Apr 27 20:18:00 2006
New Revision: 26456

Modified:
   pypy/dist/pypy/translator/c/pyobj.py
   pypy/dist/pypy/translator/c/test/test_wrapping.py
Log:
oops, tiny logic error

Modified: pypy/dist/pypy/translator/c/pyobj.py
==============================================================================
--- pypy/dist/pypy/translator/c/pyobj.py	(original)
+++ pypy/dist/pypy/translator/c/pyobj.py	Thu Apr 27 20:18:00 2006
@@ -577,7 +577,8 @@
                         if ann.binding(graph.getargs()[0]).classdef is not clsdef:
                             value = new_method_graph(graph, clsdef, fname, self.translator)
                     self.name_for_meth[value] = fname
-                    self.is_method[value] = self.use_true_methods
+                    if self.use_true_methods:
+                        self.is_method[value] = True
                 yield '%s.%s = %s' % (name, key, self.nameof(value))
             if not init_seen:
                 log.WARNING('No __init__ found for %s - you cannot build instances' %

Modified: pypy/dist/pypy/translator/c/test/test_wrapping.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_wrapping.py	(original)
+++ pypy/dist/pypy/translator/c/test/test_wrapping.py	Thu Apr 27 20:18:00 2006
@@ -37,11 +37,13 @@
     bk = rtyper.annotator.bookkeeper
     if not exports:
         exports = []
-    all = [obj.__name__ for obj in exports]
+    all = [obj.__name__ for obj in exports if obj.__name__ != '__init__']
     exports = exports + [('__all__', all)]
 
     ann.build_types(func, get_annotation(func))
 
+    pyobj_options = {}
+
     for obj in exports:
         if isinstance(obj, type):
             clsdef = bk.getuniqueclassdef(obj)
@@ -50,6 +52,8 @@
             if not ann.bookkeeper.getdesc(obj).querycallfamily():
                 # not annotated, so enforce it
                 ann.build_types(obj, get_annotation(obj))
+            if obj.__name__ == '__init__':
+                pyobj_options['use_true_methods'] = True
 
     if view:
         t.viewcg()
@@ -68,9 +72,6 @@
 
     cbuilder = CExtModuleBuilder(t, func, gcpolicy=gcpolicy)
     # explicit build of database
-    pyobj_options = {
-        'use_true_methods': '__init__' in exports
-        }
     db = cbuilder.build_database(exports=exports, pyobj_options=pyobj_options)
     cbuilder.generate_source(db)
     if view:



More information about the Pypy-commit mailing list