Added special cases to the test-suite as required for D.

This is a part of the pending merge of the D module.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12298 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
David Nadlinger 2010-11-18 00:17:37 +00:00
commit a355d2d46a
29 changed files with 137 additions and 39 deletions

View file

@ -2,10 +2,12 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) D; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) D; /* C#, D, Java, PHP multiple inheritance */
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) E; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) E; /* C#, D, Java, PHP multiple inheritance */
%inline %{ %inline %{
#if defined(_MSC_VER) #if defined(_MSC_VER)

View file

@ -3,12 +3,17 @@
%warnfilter(SWIGWARN_RUBY_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_RUBY_MULTIPLE_INHERITANCE,
SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) C; /* Ruby, C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) C; /* Ruby, C#, D, Java, PHP multiple inheritance */
#ifdef SWIGCSHARP #ifdef SWIGCSHARP
%ignore B::bar; // otherwise get a warning: `C.bar' no suitable methods found to override %ignore B::bar; // otherwise get a warning: `C.bar' no suitable methods found to override
#endif #endif
#ifdef SWIGD
%ignore B::bar; // Prevents getting an error that C.bar does not override any function because multiple inheritance is not supported.
#endif
%contract test_preassert(int a, int b) { %contract test_preassert(int a, int b) {
require: require:
a > 0; a > 0;

View file

@ -5,11 +5,13 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) EB; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) EB; /* C#, D, Java, PHP multiple inheritance */
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) AD; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) AD; /* C#, D, Java, PHP multiple inheritance */
%warnfilter(SWIGWARN_LANG_FRIEND_IGNORE) F; /* friend function */ %warnfilter(SWIGWARN_LANG_FRIEND_IGNORE) F; /* friend function */

View file

@ -1,7 +1,7 @@
/* File : example.i */ /* File : example.i */
%module dynamic_cast %module dynamic_cast
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) #if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD)
%apply SWIGTYPE *DYNAMIC { Foo * }; %apply SWIGTYPE *DYNAMIC { Foo * };
#endif #endif
@ -17,7 +17,7 @@ public:
}; };
%} %}
#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGGO) #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGGO) || defined(SWIGD)
%typemap(out) Foo *blah { %typemap(out) Foo *blah {
Bar *downcast = dynamic_cast<Bar *>($1); Bar *downcast = dynamic_cast<Bar *>($1);
*(Bar **)&$result = downcast; *(Bar **)&$result = downcast;
@ -37,6 +37,13 @@ public:
} }
#endif #endif
#if defined(SWIGD)
%typemap(dout, excode=SWIGEXCODE) Foo * {
Bar ret = new Bar($wcall, $owner);$excode
return ret;
}
#endif
#if defined(SWIGGO) #if defined(SWIGGO)
%insert(go_runtime) %{ %insert(go_runtime) %{
func FooToBar(f Foo) Bar { func FooToBar(f Foo) Bar {
@ -62,7 +69,7 @@ char *do_test(Bar *b) {
} }
%} %}
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) #if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD)
// A general purpose function for dynamic casting of a Foo * // A general purpose function for dynamic casting of a Foo *
%{ %{
static swig_type_info * static swig_type_info *

View file

@ -58,6 +58,11 @@ typedef struct _Foo {
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) _iFoo; %warnfilter(SWIGWARN_RUBY_WRONG_NAME) _iFoo;
#ifdef SWIGD
/* Work around missing support for proper char quoting due to parser shortcomings. */
%dconstvalue("'a'") _iFoo::Char;
#endif
#ifndef __cplusplus #ifndef __cplusplus
%inline %{ %inline %{
typedef struct _iFoo typedef struct _iFoo

View file

@ -6,7 +6,8 @@
%warnfilter(SWIGWARN_RUBY_WRONG_NAME, %warnfilter(SWIGWARN_RUBY_WRONG_NAME,
SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam; // Ruby, wrong class name - C# & Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam; // Ruby, wrong class name - C#, D & Java, PHP multiple inheritance
%inline %{ %inline %{

View file

@ -6,7 +6,8 @@
%warnfilter(SWIGWARN_RUBY_WRONG_NAME, %warnfilter(SWIGWARN_RUBY_WRONG_NAME,
SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) Blah::spam; // Ruby, wrong class name - C# & Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) Blah::spam; // Ruby, wrong class name - C#, D & Java, PHP multiple inheritance
%inline %{ %inline %{
namespace Blah { namespace Blah {

View file

@ -6,6 +6,7 @@
%warnfilter(SWIGWARN_RUBY_WRONG_NAME, %warnfilter(SWIGWARN_RUBY_WRONG_NAME,
SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam; // Ruby, wrong class name - C# & Java, PHP multiple inheritance SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam; // Ruby, wrong class name - C# & Java, PHP multiple inheritance
%inline %{ %inline %{

View file

@ -8,16 +8,16 @@
%import "import_nomodule.h" %import "import_nomodule.h"
#if !defined(SWIGJAVA) && !defined(SWIGRUBY) && !defined(SWIGCSHARP) #if !defined(SWIGJAVA) && !defined(SWIGRUBY) && !defined(SWIGCSHARP) && !defined(SWIGD)
/** /**
* The proxy class does not have Bar derived from Foo, yet an instance of Bar * The proxy class does not have Bar derived from Foo, yet an instance of Bar
* can successfully be passed to a proxy function taking a Foo pointer (for some * can successfully be passed to a proxy function taking a Foo pointer (for some
* language modules). * language modules).
* *
* This violation of the type system is not possible in Java and C# due to static * This violation of the type system is not possible in Java, C# and D due to
* type checking. It's also not (currently) possible in Ruby, but this may be * static type checking. It's also not (currently) possible in Ruby, but this may
* fixable (needs more investigation). * be fixable (needs more investigation).
*/ */
%newobject create_Foo; %newobject create_Foo;

View file

@ -1,4 +1,4 @@
// Test using a target language specified base class, primarily for Java/C# and possibly other single inheritance languages // Test using a target language specified base class, primarily for Java/C#/D and possibly other single inheritance languages
// Note the multiple inheritance warnings don't appear because of the two techniques used in here: typemaps and %ignore // Note the multiple inheritance warnings don't appear because of the two techniques used in here: typemaps and %ignore
@ -6,6 +6,8 @@
#if defined(SWIGJAVA) #if defined(SWIGJAVA)
# define csbase javabase # define csbase javabase
#elif defined(SWIGD)
# define csbase dbase
#endif #endif
%pragma(csharp) moduleimports=%{ %pragma(csharp) moduleimports=%{
@ -20,6 +22,10 @@ class TargetLanguageBase { public void targetLanguageBaseMethod() {} };
class TargetLanguageBase2 { public void targetLanguageBase2Method() {} }; class TargetLanguageBase2 { public void targetLanguageBase2Method() {} };
%} %}
%pragma(d) globalproxyimports=%{
private class TargetLanguageBase { public void targetLanguageBaseMethod() {} };
private class TargetLanguageBase2 { public void targetLanguageBase2Method() {} };
%}
%typemap(csbase) SWIGTYPE "TargetLanguageBase" %typemap(csbase) SWIGTYPE "TargetLanguageBase"

View file

@ -34,7 +34,7 @@
# define SWIG_SHARED_PTR_NAMESPACE SwigBoost # define SWIG_SHARED_PTR_NAMESPACE SwigBoost
#endif #endif
#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGD)
#define SHARED_PTR_WRAPPERS_IMPLEMENTED #define SHARED_PTR_WRAPPERS_IMPLEMENTED
#endif #endif

View file

@ -1,6 +1,6 @@
%module li_boost_shared_ptr_bits %module li_boost_shared_ptr_bits
#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGD)
#define SHARED_PTR_WRAPPERS_IMPLEMENTED #define SHARED_PTR_WRAPPERS_IMPLEMENTED
#endif #endif

View file

@ -14,7 +14,7 @@
%template(VectorVectorString) std::vector< std::vector<std::string> >; %template(VectorVectorString) std::vector< std::vector<std::string> >;
%template(PairIntPairIntString) std::pair< int, std::pair<int, std::string> >; %template(PairIntPairIntString) std::pair< int, std::pair<int, std::string> >;
#if defined(SWIGCSHARP) #if defined(SWIGCSHARP) || defined(SWIGD)
// Checks macro containing a type with a comma // Checks macro containing a type with a comma
SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >) SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
#endif #endif

View file

@ -1,16 +1,18 @@
%module minherit2 %module minherit2
// A multiple inheritance example, mainly for Java and C#. // A multiple inheritance example, mainly for Java, C# and D.
// The example shows how it is possible to turn C++ abstract base classes into Java/C# interface. // The example shows how it is possible to turn C++ abstract base classes into
// Java/C#/D interfaces.
// In the future, all this trouble might be more automated. // In the future, all this trouble might be more automated.
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_RUBY_MULTIPLE_INHERITANCE, SWIGWARN_RUBY_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) RemoteMpe; SWIGWARN_PHP_MULTIPLE_INHERITANCE) RemoteMpe;
#if defined(SWIGJAVA) || defined(SWIGCSHARP) #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGD)
#if defined(SWIGCSHARP) #if defined(SWIGCSHARP)
#define javaclassmodifiers csclassmodifiers #define javaclassmodifiers csclassmodifiers
@ -22,6 +24,21 @@
#define javabase csbase #define javabase csbase
#endif #endif
#if defined(SWIGD)
#define javaclassmodifiers dclassmodifiers
#define javabody dbody
#define javafinalize ddestructor
#define javadestruct ddispose
#define javaout dout
#define javainterfaces dinterfaces
#define javabase dbase
%typemap(dimports) RemoteMpe %{
$importtype(IRemoteSyncIO)
$importtype(IRemoteAsyncIO)
%}
#endif
// Modify multiple inherited base classes into inheriting interfaces // Modify multiple inherited base classes into inheriting interfaces
%typemap(javainterfaces) RemoteMpe "IRemoteSyncIO, IRemoteAsyncIO"; %typemap(javainterfaces) RemoteMpe "IRemoteSyncIO, IRemoteAsyncIO";
%typemap(javabase, replace="1") RemoteMpe ""; %typemap(javabase, replace="1") RemoteMpe "";
@ -51,6 +68,12 @@
// Features are inherited by derived classes, so override this // Features are inherited by derived classes, so override this
%csmethodmodifiers RemoteMpe::syncmethod "public" %csmethodmodifiers RemoteMpe::syncmethod "public"
%csmethodmodifiers RemoteMpe::asyncmethod "public" %csmethodmodifiers RemoteMpe::asyncmethod "public"
#elif defined(SWIGD)
%dmethodmodifiers IRemoteSyncIO::syncmethod "";
%dmethodmodifiers IRemoteAsyncIO::asyncmethod "";
// Features are inherited by derived classes, so override this
%dmethodmodifiers RemoteMpe::syncmethod "public"
%dmethodmodifiers RemoteMpe::asyncmethod "public"
#endif #endif
#endif #endif

View file

@ -5,11 +5,13 @@ It tests basic multiple inheritance */
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; /* C#, D, Java, PHP multiple inheritance */
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBarSpam; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBarSpam; /* C#, D, Java, PHP multiple inheritance */
%inline %{ %inline %{

View file

@ -2,6 +2,10 @@
%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Ala::Ola; %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Ala::Ola;
#ifdef SWIGD
%warnfilter(SWIGWARN_IGNORE_OPERATOR_LT);
#endif
%inline %{ %inline %{
template<class T> void foobar(T t) {} template<class T> void foobar(T t) {}
namespace test { namespace test {

View file

@ -33,12 +33,12 @@ const int NUMBER_UNIQUE(thing) = -2; /* resolves to thing28 */
%javaconst(1); %javaconst(1);
#elif defined(SWIGCSHARP) #elif defined(SWIGCSHARP)
%csconst(1); %csconst(1);
#elif defined(SWIGD)
%dnativeconst;
#else #else
%ignore LINE_NUMBER; %ignore LINE_NUMBER;
%ignore LINE_NUM; %ignore LINE_NUM;
/* spare space */ /* spare space */
#endif #endif
%{ %{

View file

@ -9,7 +9,8 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) E; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) E; /* C#, D, Java, PHP multiple inheritance */
%nodefaultctor C; %nodefaultctor C;
%nodefaultdtor C; %nodefaultdtor C;
@ -65,7 +66,7 @@ public:
%} %}
/* Fill in method from AA. This class should be constructable */ /* Fill in method from AA. This class should be constructable */
#ifdef SWIGCSHARP #if defined(SWIGCSHARP) || defined(SWIGD)
%ignore F::method2(); // Work around for lack of multiple inheritance support - base AA is ignored. %ignore F::method2(); // Work around for lack of multiple inheritance support - base AA is ignored.
#endif #endif

View file

@ -1,6 +1,6 @@
%module samename %module samename
#if !(defined(SWIGCSHARP) || defined(SWIGJAVA)) #if !(defined(SWIGCSHARP) || defined(SWIGJAVA) || defined(SWIGD))
class samename { class samename {
public: public:
void do_something() { void do_something() {

View file

@ -165,6 +165,20 @@ namespace Space {
return new $typemap(jstype, Space::RenameMe)( new $typemap(jstype, Name)(s) ); return new $typemap(jstype, Space::RenameMe)( new $typemap(jstype, Name)(s) );
} }
%} %}
#elif defined(SWIGD)
#if (SWIG_D_VERSION == 1)
%typemap(dcode) Space::RenameMe %{
public static NewName factory(char[] s) {
return new $typemap(dptype, Space::RenameMe)( new $typemap(dptype, Name)(s) );
}
%}
#else
%typemap(dcode) Space::RenameMe %{
public static NewName factory(string s) {
return new $typemap(dptype, Space::RenameMe)( new $typemap(dptype, Name)(s) );
}
%}
#endif
#endif #endif
%rename(NewName) Space::RenameMe; %rename(NewName) Space::RenameMe;

View file

@ -11,6 +11,9 @@
#elif SWIGCSHARP #elif SWIGCSHARP
%csconst(1) EN; %csconst(1) EN;
%csconst(1) CHARTEST; %csconst(1) CHARTEST;
#elif SWIGD
%dnativeconst EN;
%dnativeconst CHARTEST;
#endif #endif
%inline %{ %inline %{

View file

@ -13,6 +13,10 @@ public:
%template(foo_i) foo<int>; %template(foo_i) foo<int>;
%template(foo_d) foo<double>; %template(foo_d) foo<double>;
#ifdef SWIGD
// Workaround for the D module which uses the literal value in the generated wrapper code.
%dconstvalue("3") Manta::ColorSpace<Manta::RGBTraits>::NumComponents;
#endif
%inline { %inline {

View file

@ -4,7 +4,8 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) oss::Module; /* C#, Java, PHP multiple inheritance */ SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) oss::Module; /* C#, D, Java, PHP multiple inheritance */
%inline %{ %inline %{
@ -56,7 +57,7 @@ namespace oss
%inline %{ %inline %{
namespace oss namespace oss
{ {
#if defined(SWIG) && defined(SWIGCSHARP) #if defined(SWIG) && (defined(SWIGCSHARP) || defined(SWIGD))
%ignore HModule<B>::get(); // Work around for lack of multiple inheritance support - base ModuleBase is ignored. %ignore HModule<B>::get(); // Work around for lack of multiple inheritance support - base ModuleBase is ignored.
#endif #endif
struct test : HModule<B> struct test : HModule<B>

View file

@ -28,9 +28,16 @@ namespace Foo {
#endif #endif
#ifdef SWIGGO #ifdef SWIGGO
%typemap(gotype) Str1 * = char *; %typemap(gotype) Str1 * = char *;
#endif
#ifdef SWIGD
%typemap(cwtype) Str1 * = char *;
%typemap(dwtype) Str1 * = char *;
%typemap(dptype) Str1 * = char *;
%typemap(din) Str1 * = char *;
%typemap(dout) Str1 * = char *;
#endif #endif
%typemap(in) Str1 * = char *; %typemap(in) Str1 * = char *;
#if !(defined(SWIGCSHARP) || defined(SWIGLUA) || defined(SWIGPHP) || defined(SWIGMZSCHEME) || defined(SWIGOCAML) || defined(SWIGGO)) #if !(defined(SWIGCSHARP) || defined(SWIGLUA) || defined(SWIGPHP) || defined(SWIGMZSCHEME) || defined(SWIGOCAML) || defined(SWIGGO) || defined(SWIGD))
%typemap(freearg) Str1 * = char *; %typemap(freearg) Str1 * = char *;
#endif #endif
%typemap(typecheck) Str1 * = char *; %typemap(typecheck) Str1 * = char *;

View file

@ -2,7 +2,7 @@
%module typemap_out_optimal %module typemap_out_optimal
// Just the following languages tested // Just the following languages tested
#if defined (SWIGCSHARP) #if defined (SWIGCSHARP) || defined (SWIGD)
%typemap(out, optimal="1") SWIGTYPE %{ %typemap(out, optimal="1") SWIGTYPE %{
$result = new $1_ltype((const $1_ltype &)$1); $result = new $1_ltype((const $1_ltype &)$1);
%} %}
@ -18,6 +18,10 @@
%ignore XX::operator=; %ignore XX::operator=;
#ifdef SWIGD
%rename(trace) XX::debug;
#endif
%inline %{ %inline %{
#include <iostream> #include <iostream>
using namespace std; using namespace std;

View file

@ -61,8 +61,8 @@
$1 = ($ltype) temp; $1 = ($ltype) temp;
} }
/* Java, C# and Go modules don't use SWIG's runtime type system */ /* Java, C#, Go and D modules don't use SWIG's runtime type system */
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) #if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD)
%inline %{ %inline %{
void foo(const struct xyzzy **TEST) {} void foo(const struct xyzzy **TEST) {}
%} %}

View file

@ -2,13 +2,16 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, D, Java, PHP multiple inheritance
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar2; // C#, Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar2; // C#, D, Java, PHP multiple inheritance
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar3; // C#, Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar3; // C#, D, Java, PHP multiple inheritance
#ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings #ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings
%warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah;
#endif #endif

View file

@ -2,7 +2,8 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, D, Java, PHP multiple inheritance
#ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings #ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings
%warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah;
#endif #endif

View file

@ -5,7 +5,8 @@
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) Hi<hello::Hello, hi::hi0>; // C#, Java, PHP multiple inheritance SWIGWARN_D_MULTIPLE_INHERITANCE,
SWIGWARN_PHP_MULTIPLE_INHERITANCE) Hi<hello::Hello, hi::hi0>; // C#, D, Java, PHP multiple inheritance
%inline %{ %inline %{
namespace hello namespace hello