From 8e41c856e172e69b1a75aa1698ebabd9f1d422ac Mon Sep 17 00:00:00 2001 From: k-hara Date: Mon, 5 Sep 2011 13:15:39 +0900 Subject: [PATCH] Improve error message --- std/conv.d | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/std/conv.d b/std/conv.d index 419c60e5757..a02a0fb703b 100644 --- a/std/conv.d +++ b/std/conv.d @@ -2763,26 +2763,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