[Issue 15870] UFCS not recognized on array when passing as alias parameter
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri May 25 23:19:00 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=15870
Ivan Kazmenko <gassa at mail.ru> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |gassa at mail.ru
--- Comment #1 from Ivan Kazmenko <gassa at mail.ru> ---
Still does not work in 2.080 release.
The error message however is interesting.
Here is a modified example with a line containing `(a)` instead of `a`.
Compile with `dmd -main`:
-----
import std.algorithm;
enum test(alias fun) = "it works";
immutable a = [1,2,3];
pragma(msg, typeof(a)); // immutable(int[])
pragma(msg, test!((a).map!(x => x))); // "it works"
pragma(msg, test!(a.map!(x => x))); // template identifier `map` is not a
member of variable `a.a`
-----
Why is that `a.a` in the first place?
Does the compiler mistake `a` for an eponymous template somehow, instead of
seeing that `map` is a template here?
--
More information about the Digitalmars-d-bugs
mailing list