Closed
Description
I tried this code:
fn main() {
for line in "a\r".lines() {
println!("{:?}", line);
}
}
I expected to see this happen: "a\r"
to be printed.
Instead, this happened: "a"
is being printed.
At this point fixing this behavior may break actual code (and this would be a quiet change), however documenting this may make sense. This behavior was introduced in Rust 1.4.0 as a result of implementation of RFC 1212.
Curiously, BufRead::lines
whose behavior was changed by the same RFC doesn't have this issue. It makes sure that \r
is followed by \n
before deleting the carriage return.
Meta
rustc --version --verbose
:
rustc 1.59.0 (9d1b2106e 2022-02-23)
binary: rustc
commit-hash: 9d1b2106e23b1abd32fce1f17267604a5102f57a
commit-date: 2022-02-23
host: x86_64-unknown-linux-gnu
release: 1.59.0
LLVM version: 13.0.0