You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`maxIndex` returns an array with a single element when run on an array modified by UFCS (e.g. for absolute value). `minIndex` doesn't, so I guess this is a bug.
Tested with dmd v2.109.1
```import std.math: fabs;import std.algorithm: minIndex, maxIndex;double[] u = [-9, 3, 2, 8, 4];writeln(u.maxIndex); // => 3, OKwriteln(u.map!fabs.minIndex); // => 2, OKwriteln(u.map!fabs.maxIndex); // => [0] ??? Expected: 0```
Thanks!
The text was updated successfully, but these errors were encountered:
Aw, my bad - I was doing some tests, but in combination with mir.ndslice and it turns out it's due to a clash with mir.ndslice's maxIndex/minIndex that I didn't realise I was importing too. So not a bug in std.algorithm :) sorry for the false alarm! Not too sure exactly what creates the issue, some import combinations work, but one doesn't. (Of course, it's bad to import homonyms into the namespace - the compiler seemed to deal with it, so I thought it was fine, but obviously it creates some issues. There doesn't seem to be a way to use UFCS with full module names, is there?)
```import std.stdio: writeln;import std.math: fabs;/* OK */// import std.algorithm: maxIndex, minIndex, map;/* OK */// import std.algorithm: maxIndex, minIndex;// import mir.ndslice: map;/* OK */// import std.algorithm: maxIndex, minIndex, map;// import mir.ndslice: maxIndex, minIndex;/* Not OK */import std.algorithm: maxIndex, minIndex;import mir.ndslice: maxIndex, minIndex, map;void main(){ double[] u = [-9, 3, 2, 8, 4]; writeln(u.maxIndex); // => 3, OK writeln(u.minIndex); // => 0, OK writeln(u.map!fabs.minIndex); // => [2] ??? writeln(u.map!fabs.maxIndex); // => [0] ???}```
pabuond reported this on 2024-11-13T19:28:18Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=24858
CC List
Description
The text was updated successfully, but these errors were encountered: