https://issues.dlang.org/show_bug.cgi?id=12470
--- Comment #5 from Andrej Mitrovic <[email protected]> --- It seems the bottom-line problem is this: ----- import std.array; import std.range; inout(char)[] sanitize(inout(char)[] input) { auto app = appender!(inout(char)[])(); // fails because of inout(char) as the element type static assert(isOutputRange!(typeof(app), inout(char))); } ----- And it fails because of this strange nested declaration inside of the put method: @property ref E[] EArrayInit(); //@@@9186@@@: Can't use (E[]).init std\range.d(656): Error: inout on return means inout must be on a parameter as well for @property ref inout(char)[]() I guess this was some kind of funky workaround, but it causes issues for 12470. I'm not sure how to proceed yet. --
