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