diff options
Diffstat (limited to 'src/io')
-rw-r--r-- | src/io/line.cpp | 2 | ||||
-rw-r--r-- | src/io/line_test.cpp | 21 |
2 files changed, 12 insertions, 11 deletions
diff --git a/src/io/line.cpp b/src/io/line.cpp index 8173398..f7470a6 100644 --- a/src/io/line.cpp +++ b/src/io/line.cpp @@ -62,7 +62,7 @@ namespace io { assert (begin.column); assert (end.column); - assert (begin.column <= end.column); + assert (begin.line < end.line || begin.column <= end.column); MString out; if (begin.line == end.line) diff --git a/src/io/line_test.cpp b/src/io/line_test.cpp index 6f0706f..df8a0d3 100644 --- a/src/io/line_test.cpp +++ b/src/io/line_test.cpp @@ -351,7 +351,7 @@ TEST(io, linechar5) TEST(io, linespan) { - io::LineCharReader lr("<span>", string_pipe("Hello\nWorld\n")); + io::LineCharReader lr("<span>", string_pipe("Hello,\nWorld!\n")); io::LineSpan span; do { @@ -367,9 +367,10 @@ TEST(io, linespan) while (span.end.ch() != 'o'); EXPECT_EQ(span.message_str("info", "meh"), "<span>:1:2: info: meh\n" - "Hello\n" + "Hello,\n" " ^~~~\n" ); + span.begin = span.end; do { lr.get(span.end); @@ -378,20 +379,20 @@ TEST(io, linespan) while (span.end.ch() != 'r'); EXPECT_EQ(span.begin.message_str("note", "foo"), - "<span>:1:2: note: foo\n" - "Hello\n" - " ^\n" + "<span>:1:5: note: foo\n" + "Hello,\n" + " ^\n" ); EXPECT_EQ(span.end.message_str("warning", "bar"), "<span>:2:3: warning: bar\n" - "World\n" + "World!\n" " ^\n" ); EXPECT_EQ(span.message_str("error", "qux"), - "<span>:1:2: error: qux\n" - "Hello\n" - " ^~~~ ...\n" - "World\n" + "<span>:1:5: error: qux\n" + "Hello,\n" + " ^~ ...\n" + "World!\n" "~~~\n" ); } |