[Issue 15899] Tuple.toString not recognized as a function with isSomeFunction

2016-04-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15899

Edwin van Leeuwen  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--


[Issue 15899] Tuple.toString not recognized as a function with isSomeFunction

2016-04-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15899

--- Comment #2 from Edwin van Leeuwen  ---
That makes sense, thanks for the explanation.

Might be useful to add an isField attribute to traits. Previously I assumed
that if something !isSomeFunction it would be a field, but that does not seem
to be the case. Now changed that assumption to also ignore templates.

--


[Issue 15899] Tuple.toString not recognized as a function with isSomeFunction

2016-04-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15899

Edwin van Leeuwen  changed:

   What|Removed |Added

 CC||ed...@tkwsping.nl

--


[Issue 15899] Tuple.toString not recognized as a function with isSomeFunction

2016-04-08 Thread via Digitalmars-d-bugs
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

--