xxxxxxxxxx
/+dub.sdl:
dependency "optional" version="~>0.7.1"
+/
import std.stdio;
import optional;
void main()
{
static class C { void f() {} }
static struct S { void f() {} }
void f0(NotNull!C c) {
c.f();
}
void f1(NotNull!(S*) sp) {
sp.f();
}
auto c = notNull!C;
auto sp = notNull!(S*);
f0(c);
f1(sp);
static assert(!__traits(compiles, { c = null; }));
static assert(!__traits(compiles, { sp = null; }));
static assert(!__traits(compiles, { c = new C; }));
}