summaryrefslogtreecommitdiff
path: root/src/io
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-04-05 13:26:39 -0700
committerBen Longbons <b.r.longbons@gmail.com>2014-04-05 13:26:39 -0700
commitd6b80d1b95ac566e7eb9b75389fb10ae8610dd6f (patch)
tree25a1c19339e19a5a1798c3513b1889f66d1502d2 /src/io
parentd53f69d2249120b366b15a2333110372d67fbb5b (diff)
downloadtmwa-d6b80d1b95ac566e7eb9b75389fb10ae8610dd6f.tar.gz
tmwa-d6b80d1b95ac566e7eb9b75389fb10ae8610dd6f.tar.bz2
tmwa-d6b80d1b95ac566e7eb9b75389fb10ae8610dd6f.tar.xz
tmwa-d6b80d1b95ac566e7eb9b75389fb10ae8610dd6f.zip
Fix assert in multiline spans
Diffstat (limited to 'src/io')
-rw-r--r--src/io/line.cpp2
-rw-r--r--src/io/line_test.cpp21
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"
);
}