digitalmars.D.bugs - [Issue 19162] New: [REG: 2.079.0] Public Import Overlapping Names
- d-bugmail puremagic.com (52/52) Aug 12 2018 https://issues.dlang.org/show_bug.cgi?id=19162
https://issues.dlang.org/show_bug.cgi?id=19162 Issue ID: 19162 Summary: [REG: 2.079.0] Public Import Overlapping Names Conflict Resolution Product: D Version: D2 Hardware: x86_64 OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: look.at.me.pee.please gmail.com 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; } ******************************************************* --
Aug 12 2018