ubuntu-buildroot/output/build/host-gcc-initial-11.4.0/gcc/testsuite/gdc.test/runnable/test14874.d

39 lines
668 B
D

// REQUIRED_ARGS: -dip25
template indexOfReturn(T...)
{
static if (T.length == 0)
{
enum indexOfReturn = -1;
}
else static if (T[$ - 1] == "return")
{
enum indexOfReturn = T.length - 1;
}
else
{
enum indexOfReturn = indexOfReturn!(T[0..$-1]);
}
}
struct Test
{
int n;
ref int getN() return
{
return n;
}
int getNNonReturn()
{
return n;
}
}
void main()
{
assert(indexOfReturn!(__traits(getFunctionAttributes, Test.getN)) != -1);
assert(indexOfReturn!(__traits(getFunctionAttributes, Test.getNNonReturn)) == -1);
}