On Wednesday, July 3, 2019 1:30:37 AM MDT Andre Pany via Digitalmars-d- announce wrote: > Thanks, you helped me to find the issue. The productive coding > looks like this: > > import std.algorithm : all; > > void main() > { > import std.ascii : isAlpha, isDigit; > assert("abc123".all!(c => (c.isAlpha && c.isUpper == false) > > || c.isDigit)); > > } > > With previous dmd version, although import isUpper was not > defined, somehow it worked. > This seems to be fixed now. This issue was the missing isUpper > import statement. > The error message is a little bit odd: > Error: static assert: "_lambda isn't a unary predicate function > for range.front"
There have been bugs in the past with regards to symbols being pulled in without the actual import being there (due to stuff that was imported using it IIRC). I don't know what the current state of that is, but I recall there being a deprecation message about that behavior going away. So, if that behavior finally went away, then code could have compiled with the previous release but not the new one. - Jonathan M Davis