[pygccxml-commit] SF.net SVN: pygccxml: [1244] pyplusplus_dev
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2008-02-17 22:57:11
|
Revision: 1244 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1244&view=rev Author: roman_yakovenko Date: 2008-02-17 14:53:40 -0800 (Sun, 17 Feb 2008) Log Message: ----------- excluding functions with ellipsis Modified Paths: -------------- pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py pyplusplus_dev/pyplusplus/messages/warnings_.py pyplusplus_dev/unittests/algorithms_tester.py Modified: pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py 2008-02-17 19:49:54 UTC (rev 1243) +++ pyplusplus_dev/pyplusplus/decl_wrappers/calldef_wrapper.py 2008-02-17 22:53:40 UTC (rev 1244) @@ -159,6 +159,8 @@ all_types = [ arg.type for arg in self.arguments ] all_types.append( self.return_type ) for some_type in all_types: + if isinstance( some_type, declarations.ellipsis_t ): + return messages.W1053 % str( self ) units = declarations.decompose_type( some_type ) ptr2functions = filter( lambda unit: isinstance( unit, declarations.calldef_type_t ) , units ) Modified: pyplusplus_dev/pyplusplus/messages/warnings_.py =================================================================== --- pyplusplus_dev/pyplusplus/messages/warnings_.py 2008-02-17 19:49:54 UTC (rev 1243) +++ pyplusplus_dev/pyplusplus/messages/warnings_.py 2008-02-17 22:53:40 UTC (rev 1244) @@ -213,6 +213,9 @@ W1052 = warning( 'Py++ will not expose free operator "%s" - all classes, this operator works on, are excluded.' ) +W1053 = warning( + 'Py++ will not expose function "%s" - the function has variable-argument list, spicified by ellipsis (...).' ) + warnings = globals() all_warning_msgs = [] Modified: pyplusplus_dev/unittests/algorithms_tester.py =================================================================== --- pyplusplus_dev/unittests/algorithms_tester.py 2008-02-17 19:49:54 UTC (rev 1243) +++ pyplusplus_dev/unittests/algorithms_tester.py 2008-02-17 22:53:40 UTC (rev 1244) @@ -251,6 +251,24 @@ self.failUnless( xyz.class_( 'good' ).ignore == False ) self.failUnless( xyz.free_fun( 'f_bad' ).ignore == True ) +class exclude_ellipsis_tester_t( unittest.TestCase ): + def test(self): + + code = """ + namespace xyz{ + void do_smth( int, ... ); + } + """ + + mb = module_builder.module_builder_t( + [ module_builder.create_text_fc( code ) ] + , gccxml_path=autoconfig.gccxml.executable ) + + do_smth = mb.free_fun( 'do_smth' ) + + self.failUnless( do_smth.exportable == False ) + print do_smth.why_not_exportable() + def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(doc_extractor_tester_t)) @@ -264,7 +282,7 @@ suite.addTest( unittest.makeSuite(split_sequence_tester_t)) suite.addTest( unittest.makeSuite(exclude_erronious_tester_t)) suite.addTest( unittest.makeSuite(use_function_signature_bug_tester_t)) - + suite.addTest( unittest.makeSuite(exclude_ellipsis_tester_t)) return suite def run_suite(): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |