https://issues.dlang.org/show_bug.cgi?id=18199
--- Comment #4 from John Belmonte <j...@neggie.net> --- The problem stems from the presence of the "return" token in the lambda expression, not the curly brackets. parseInitializer() scans ahead to see if there is a struct initializer (in curly brackets). However the scan is aborted when the return token is hit. https://github.com/dlang/dmd/blob/4244b8b1abea8ad26941c33464780a13f554b0bf/src/dmd/parse.d#L6043 --