blob: 470a93c60ffcd99bb2eef007a94d02c0648c326f [file] [log] [blame]
// 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);
}