Revision: 1167
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1167&view=rev
Author: roman_yakovenko
Date: 2007-11-22 11:42:23 -0800 (Thu, 22 Nov 2007)
Log Message:
-----------
crea_with_signature algorithm is smarter from now - takes into acount functions defined in base classes
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py 2007-11-21 21:07:24 UTC (rev 1166)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py 2007-11-22 19:42:23 UTC (rev 1167)
@@ -30,7 +30,7 @@
self._call_policies = None
self._use_keywords = True
self._use_default_arguments = True
- self._create_with_signature = False
+ self._create_with_signature = None
self._overridable = None
self._non_overridable_reason = None
self._transformations = None
@@ -52,7 +52,21 @@
+"Default value is True.")
def _get_create_with_signature(self):
- return self._create_with_signature or bool( self.overloads )
+ if None is self._create_with_signature:
+ self._create_with_signature = bool( self.overloads )
+ if not self._create_with_signature and isinstance( self.parent, declarations.class_t ):
+ for hi in self.parent.recursive_bases:
+ if hi.access_type == 'private':
+ continue
+ funcs = hi.related_class.calldefs( self.name, recursive=False, allow_empty=True )
+ for f in funcs:
+ if f.argument_types != self.argument_types:
+ self._create_with_signature = True
+ break
+ if self._create_with_signature:
+ break
+ return self._create_with_signature
+
def _set_create_with_signature(self, create_with_signature):
self._create_with_signature = create_with_signature
create_with_signature = property( _get_create_with_signature, _set_create_with_signature
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|