From 353f310abf0c7d71a91a30de996498066b23e4fe Mon Sep 17 00:00:00 2001 From: k-hara Date: Mon, 5 Sep 2011 18:20:00 +0900 Subject: [PATCH 1/2] Revert "Revert "Improve error message"" This reverts commit 152191c4891bf6f6d623a308e81a5d5ac43481cb. --- std/conv.d | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/std/conv.d b/std/conv.d index 600f49fac55..b8b1e19c179 100644 --- a/std/conv.d +++ b/std/conv.d @@ -2765,26 +2765,34 @@ Target parse(Target, Source)(ref Source s, dchar lbracket = '[', dchar rbracket if (s.front == rbracket) { if (result.length != 0) - parseError("Need more input"); + goto Lmanyerr; s.popFront(); return result; } for (size_t i = 0; ; s.popFront(), skipWS(s)) { if (i == result.length) - parseError("Too many input"); + goto Lmanyerr; result[i++] = parseElement!(ElementType!Target)(s); skipWS(s); if (s.front != comma) { if (i != result.length) - parseError("Need more input"); + goto Lfewerr; break; } } parseCheck!s(rbracket); return result; + +Lmanyerr: + parseError(text("Too many elements in input, ", result.length, " elements expected.")); + assert(0); + +Lfewerr: + parseError(text("Too few elements in input, ", result.length, " elements expected.")); + assert(0); } unittest From 558c3c546994e46f23751cd5833c315e27592ef4 Mon Sep 17 00:00:00 2001 From: k-hara Date: Mon, 5 Sep 2011 18:21:10 +0900 Subject: [PATCH 2/2] Consider "statement is not reachable" waring --- std/conv.d | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/std/conv.d b/std/conv.d index b8b1e19c179..f359c6f8b88 100644 --- a/std/conv.d +++ b/std/conv.d @@ -2764,10 +2764,13 @@ Target parse(Target, Source)(ref Source s, dchar lbracket = '[', dchar rbracket skipWS(s); if (s.front == rbracket) { - if (result.length != 0) + static if (result.length != 0) goto Lmanyerr; - s.popFront(); - return result; + else + { + s.popFront(); + return result; + } } for (size_t i = 0; ; s.popFront(), skipWS(s)) {