Fix issue 20554 - std.algorithm.searching.all 's static assert produces a garbled error message

This commit is contained in:
Julian Fondren 2021-09-21 20:25:26 -05:00
parent d0bf92cab7
commit dc2bf7901f

View file

@ -122,7 +122,9 @@ template all(alias pred = "a")
if (isInputRange!Range)
{
static assert(is(typeof(unaryFun!pred(range.front))),
"`" ~ pred.stringof[1..$-1] ~ "` isn't a unary predicate function for range.front");
"`" ~ (isSomeString!(typeof(pred))
? pred.stringof[1..$-1] : pred.stringof)
~ "` isn't a unary predicate function for range.front");
import std.functional : not;
return find!(not!(unaryFun!pred))(range).empty;