A bit late now, but this actually needs to be written as `put(buffer, newC)`. If you write it as *just* `buffer.put(newC)`, then you bypass `std.range.put`, which may be needed to do transcoding, or to transform the dchar into a string, or "whatnot".

The "problem" is that we are testing with `Appender`, which is an extremely capable output range. A test with a "simple appender", eg, nothing but `void put(const(char)[] s)` would not work with this piece of code.

(Note, even if you change it, it currently *wouldn't* work anyways, but that'd be a bug in put itself, as opposed to translateImpl).