https://issues.dlang.org/show_bug.cgi?id=15899
ag0ae...@gmail.com changed:
What|Removed |Added
CC||ag0ae...@gmail.com
--- Comment #1 from ag0ae...@gmail.com ---
std.typecons.Tuple.toString is not a function. It's a template. And the
documentation says so [1]. So I think it's expected that isSomeFunction [2]
returns false, as it's only supposed to accept functions, function pointers,
and delegates.
I'm not sure why toString is a template, though. It's wrapped twice in
zero-parameters templates, with no comment as to why. There may have been bugs
or language limitations in the past that made this necessary. But now, Tuple
being a template should be enough to trigger attribute inference for its
methods, and templates and non-templates should be able to coexist in an
overload set.
So it may be possible to just remove the `template toString()` and the extra
empty parentheses from `string toString()()`. Then isSomeFunction would return
true for Tuple.toString.
[1] http://dlang.org/phobos/std_typecons.html#.Tuple.toString
[2] http://dlang.org/phobos/std_traits.html#isSomeFunction
--