blob: c18d0a9b20d7df88bb4b435d6f03896147db332d [file] [log] [blame]
// https://issues.dlang.org/show_bug.cgi?id=22420
struct File
{
~this()
{
}
File impl()
{
return File.init;
}
alias impl this;
}
struct Variable
{
this(File)(File) { }
this(File)(File[]) { }
}
Variable wrapFunctionReturn(alias handler)(Variable params)
{
return Variable(handler(params));
}
void registerFile()
{
wrapFunctionReturn!((Variable) {
return File.init;
})(Variable.init);
}
// Reduction from an 'automem' test
struct Issue156 {}
void test2()
{
RefCounted!Issue156 s;
auto r1 = repeat(s);
zip(r1);
}
struct RefCounted(RefCountedType)
{
~this() {}
alias _impl this;
struct Impl {}
alias ImplType = Impl;
private ImplType* _impl;
}
template Tuple(Specs)
{
struct Tuple
{
this(U)(U) {}
this()(int) {}
}
}
template ElementType(R)
{
static if (is(typeof(R.init) T))
alias ElementType = T;
}
struct Repeat(T)
{
inout(T) front() inout {assert(0);}
}
Repeat!T repeat(T)(T ) {assert(0);}
auto zip(Ranges)(Ranges )
{
return ZipShortest!Ranges();
}
struct ZipShortest(Ranges...)
{
Ranges ranges;
alias ElementType = Tuple!(.ElementType!(Ranges[0]));
ElementType front()
{
return typeof(return)(ranges[0].front);
}
}