swig/Examples/test-suite/name_warnings.i
William S Fulton d6b81eb831 Revert rev 11187 "Merged with recent changes from trunk."
This reverts commit c595e4d90ebfd63eb55430c735bb121cf690bd59.

Conflicts:

	Source/Modules/c.cxx

From: William S Fulton <wsf@fultondesigns.co.uk>

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd@13033 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-06 01:13:16 +00:00

73 lines
1.3 KiB
OpenEdge ABL

%module name_warnings
/*
This test should produce no warnings at all.
It just show the cases where swig was showing unintended warnings
before.
Right now the test includes some cases for python, java and csharp.
*/
/* activate all the name warnings */
%warnfilter(+SWIGWARN_PARSE_KEYWORD,+SWIGWARN_PARSE_BUILTIN_NAME,-SWIGWARN_TYPE_ABSTRACT);
%{
#ifdef max
#undef max
#endif
%}
class string; // csharp keyword
namespace std
{
template <class T>
class complex;
}
%inline
{
class complex; // python built-in
typedef complex None; // python built-in
struct A
{
typedef complex None;
#ifndef SWIGPHP // clone() *is* an invalid method name in PHP.
A* clone(int) { return NULL; }
#endif
virtual ~A() {}
#ifndef SWIGGO // func is a keyword in Go.
virtual int func() = 0;
#endif
private:
typedef complex False;
};
template <class T>
T max (T a, T b) { // python 'max' built-in
return a > b ? a : b;
}
struct B : A
{
B() {}
};
}
%template(max_i) max<int>;
%inline {
/* silently rename the parameter names in csharp/java */
#ifdef SWIGR
double foo(double inparam, double out) { return 1.0; }
#else
double foo(double abstract, double out) { return 1.0; }
#endif
double bar(double native, bool boolean) { return 1.0; }
}