It is still a bit rough around some edges, particularly with regard to multi-threading and operator overloading, and there are some documentation bits missing, but it should be fine for basic use. The test-suite should build and run fine with the current versions of DMD, LDC and Tango (at least) on Linux x86_64 and Mac OS X 10.6. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12299 626c5289-ae23-0410-ae9c-e8d60b6d4f22
65 lines
1.6 KiB
D
65 lines
1.6 KiB
D
module allprotected_runme;
|
|
|
|
import allprotected.Klass;
|
|
import allprotected.ProtectedBase;
|
|
|
|
void main() {
|
|
auto mpb = new MyProtectedBase("MyProtectedBase");
|
|
mpb.accessProtected();
|
|
}
|
|
|
|
class MyProtectedBase : ProtectedBase {
|
|
public:
|
|
this(string name) {
|
|
super(name);
|
|
}
|
|
|
|
void accessProtected() {
|
|
string s = virtualMethod();
|
|
if (s != "ProtectedBase")
|
|
throw new Exception("Failed");
|
|
|
|
Klass k = instanceMethod(new Klass("xyz"));
|
|
if (k.getName() != "xyz")
|
|
throw new Exception("Failed");
|
|
|
|
k = instanceOverloaded(new Klass("xyz"));
|
|
if (k.getName() != "xyz")
|
|
throw new Exception("Failed");
|
|
|
|
k = instanceOverloaded(new Klass("xyz"), "abc");
|
|
if (k.getName() != "abc")
|
|
throw new Exception("Failed");
|
|
|
|
k = staticMethod(new Klass("abc"));
|
|
if (k.getName() != "abc")
|
|
throw new Exception("Failed");
|
|
|
|
k = staticOverloaded(new Klass("xyz"));
|
|
if (k.getName() != "xyz")
|
|
throw new Exception("Failed");
|
|
|
|
k = staticOverloaded(new Klass("xyz"), "abc");
|
|
if (k.getName() != "abc")
|
|
throw new Exception("Failed");
|
|
|
|
instanceMemberVariable = 30;
|
|
int i = instanceMemberVariable;
|
|
if (i != 30)
|
|
throw new Exception("Failed");
|
|
|
|
staticMemberVariable = 40;
|
|
i = staticMemberVariable;
|
|
if (i != 40)
|
|
throw new Exception("Failed");
|
|
|
|
i = staticConstMemberVariable;
|
|
if (i != 20)
|
|
throw new Exception("Failed");
|
|
|
|
anEnum = ProtectedBase.AnEnum.EnumVal1;
|
|
ProtectedBase.AnEnum ae = anEnum;
|
|
if (ae != ProtectedBase.AnEnum.EnumVal1)
|
|
throw new Exception("Failed");
|
|
}
|
|
}
|