[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