%interface family of macros no longer add variable wrappers

The getter/setter methods used for wrapping methods are no longer
added to the interface class.

Closes #1524

Also add in testcase for enums.
This commit is contained in:
William S Fulton 2022-03-12 22:34:17 +00:00
commit 598736a6b2
7 changed files with 48 additions and 2 deletions

View file

@ -83,5 +83,7 @@ public class multiple_inheritance_interfaces_runme {
d.ia(10);
d.ia("bye");
d.ia("bye", false);
UndesirablesSwigImpl.UndesiredStaticMethod(UndesirablesSwigImpl.UndesiredEnum.UndesiredEnum1);
}
}

View file

@ -74,5 +74,7 @@ public class multiple_inheritance_interfaces_runme {
d.ia(10);
d.ia("bye");
d.ia("bye", false);
UndesirablesSwigImpl.UndesiredStaticMethod(UndesirablesSwigImpl.UndesiredEnum.UndesiredEnum1);
}
}

View file

@ -49,6 +49,33 @@ struct V : S {};
struct W : T {};
%}
#if defined(SWIGJAVA) || defined(SWIGCSHARP)
%interface_impl(Undesirables);
#endif
%inline %{
// Don't put variables and enums into interface
class Undesirables
{
public:
Undesirables() : UndesiredVariable() {}
virtual ~Undesirables() {}
virtual void Method(int i) = 0;
enum UndesiredEnum { UndesiredEnum1, UndesiredEnum2 };
static void UndesiredStaticMethod(UndesiredEnum e) {}
int UndesiredVariable;
static int UndesiredStaticVariable;
static const int UndesiredStaticConstVariable = 0;
};
int Undesirables::UndesiredStaticVariable = 0;
struct UndesirablesDerived : Undesirables {
virtual void Method(int i) {}
};
%}
#if defined(SWIGJAVA) || defined(SWIGCSHARP)
%interface_impl(BaseOverloaded);
#endif