[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.
|