Comment #0 by look.at.me.pee.please — 2018-08-13T03:20:24Z
The following works in 2.078.1 but stopped working in 2.079.0. Seems to be selecting std.math.abs instead of vec.abs which are both publicly imported in module 'math'.
/../phobos\std\math.d(564): Error: incompatible types for `(x) >= (0)`: `Vector!(float, 3)` and `int`
/../phobos\std\math.d(564): Error: `x` is not of arithmetic type, it is a `Vector!(float, 3)`
\test\main.d(9): Error: template instance `std.math.abs!(Vector!(float, 3))` error instantiating
*******************************************************
// main.d
import math;
void main()
{
Vector!(float, 3) v;
auto t = abs(v);
}
*******************************************************
// vec.d
module vec;
struct Vector(T, int size)
{
T x, y, z;
}
auto abs(T, int size)(auto ref const Vector!(T, size) v)
{
return v;
}
*******************************************************
// math.d
module math;
public
{
import std.math; // order doesn't change error
import vec;
}
*******************************************************
Comment #1 by greensunny12 — 2018-08-15T23:25:51Z
Please don't forget to mention a PR if you submitted it, s.t. other people know about this when browsing the issue list.
In this case it's:
https://github.com/dlang/phobos/pull/6664
Thanks!
Comment #2 by github-bugzilla — 2018-08-21T11:27:35Z