mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
57 lines
654 B
D
57 lines
654 B
D
// REQUIRED_ARGS: -unittest -main -O
|
|
// https://issues.dlang.org/show_bug.cgi?id=15568
|
|
|
|
auto filter(alias pred)(D[])
|
|
{
|
|
struct FilterResult
|
|
{
|
|
void popFront()
|
|
{
|
|
pred(null);
|
|
}
|
|
|
|
D[] array()
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
return FilterResult();
|
|
}
|
|
|
|
class A
|
|
{
|
|
B foo(C c, D[] ds, bool f)
|
|
in
|
|
{
|
|
assert(c !is null);
|
|
}
|
|
do
|
|
{
|
|
D[] ds2 = ds.filter!(a => c).array;
|
|
|
|
return new B(ds2, f);
|
|
}
|
|
}
|
|
|
|
class B
|
|
{
|
|
this(D[], bool)
|
|
{
|
|
}
|
|
}
|
|
|
|
class C
|
|
{
|
|
}
|
|
|
|
struct D
|
|
{
|
|
}
|
|
|
|
unittest
|
|
{
|
|
auto a = new A;
|
|
C c = new C;
|
|
|
|
a.foo(c, null, false);
|
|
}
|