From: <rom...@us...> - 2007-11-22 19:42:18
|
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. |