mirror of https://github.com/swig/swig
72 lines
1.2 KiB
OpenEdge ABL
72 lines
1.2 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() {}
|
|
virtual int funk() = 0;
|
|
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; }
|
|
}
|