Added support for the D programming languge.
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
This commit is contained in:
parent
a355d2d46a
commit
03aefbc6e9
176 changed files with 16449 additions and 29 deletions
34
Examples/test-suite/d/li_std_except_runme.2.d
Normal file
34
Examples/test-suite/d/li_std_except_runme.2.d
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
module li_std_except_runme;
|
||||
|
||||
import std.exception;
|
||||
import std.stdio;
|
||||
import li_std_except.Test;
|
||||
|
||||
void main() {
|
||||
with (new Test()) {
|
||||
enforce(works!(Exception)(&throw_bad_exception));
|
||||
enforce(works!(Exception)(&throw_domain_error));
|
||||
enforce(works!(Exception)(&throw_exception));
|
||||
enforce(works!(Exception)(&throw_invalid_argument));
|
||||
enforce(works!(Exception)(&throw_length_error));
|
||||
enforce(works!(Exception)(&throw_logic_error));
|
||||
enforce(works!(Exception)(&throw_out_of_range));
|
||||
enforce(works!(Exception)(&throw_overflow_error));
|
||||
enforce(works!(Exception)(&throw_range_error));
|
||||
enforce(works!(Exception)(&throw_runtime_error));
|
||||
enforce(works!(Exception)(&throw_underflow_error));
|
||||
}
|
||||
}
|
||||
|
||||
bool works(alias E, F)(F f) {
|
||||
try {
|
||||
try {
|
||||
f();
|
||||
} catch(E) {
|
||||
return true;
|
||||
}
|
||||
} catch(Exception e) {
|
||||
writefln( "Received wrong exception: %s", e.classinfo.name );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue