isNumeric bugfix or 2.072 regression?

Johan Engelen via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Feb 16 15:15:09 PST 2017


Hi all,

`isNumeric!string` no longer works like it did in 2.071 when both 
std.string and std.traits are imported.

   This code no longer compiles with 2.072:

```d
// RUN: dmd -c test.d
import std.string;
import std.traits;

void foo()
{
     static if (isNumeric!string) {}
}
```

The error is (dlang 2.072 and 2.073):
isnum.d(6): Error: std.traits.isNumeric(T) at 
/Library/D/dmd/src/phobos/std/traits.d(5350) conflicts with 
std.string.isNumeric(S)(S s, bool bAllowSep = false) if 
(isSomeString!S || isRandomAccessRange!S && hasSlicing!S && 
isSomeChar!(ElementType!S) && !isInfinite!S) at 
/Library/D/dmd/src/phobos/std/string.d(5844)

dlang 2.070 and 2.071 compile it fine.
Is this part of fixing import issues and the above code is just 
broken, or is it a bug?

- Johan



More information about the Digitalmars-d-learn mailing list