On Monday, 21 October 2019 at 10:14:54 UTC, Andrey wrote:
Hello,
I have got a global constant immutable array:
immutable globalvalues = sort(cast(wstring[])["й", "ц", "ук",
"н"]);
Somewhere in program I want to check an existance:
globalvalues.contains("ук"w).writeln;
But get an error:
Error: template std.range.SortedRange!(wstring[], "a <
b").SortedRange.contains cannot deduce function from argument
types !()(wstring) immutable, candidates are:
/dlang/ldc-1.17.0/bin/../import/std/range/package.d(10993):
std.range.SortedRange!(wstring[], "a <
b").SortedRange.contains(V)(V value) if
(isRandomAccessRange!Range)
Why I can't check?
pragma(msg,typeof(globalvalues));
gives immutable(SortedRange!(wstring[], "a < b"))
and
(cast(SortedRange!(wstring[], "a <
b"))globalvalues).contains("ук"w).writeln;
works, so I guess contains doesn't work with immutable?
If you can do some more research into this and confirm it then,
please file a bug report.