diff --git a/stdx/d/lexer.d b/stdx/d/lexer.d index 05071e0..ca05a92 100644 --- a/stdx/d/lexer.d +++ b/stdx/d/lexer.d @@ -1120,17 +1120,21 @@ public struct DLexer if (isNewline()) { popFrontWhitespaceAware(); - if (range.peek(ident.text.length) == ident.text) + if (!range.canPeek(ident.text.length)) { - foreach (i ; 0 .. ident.text.length) - range.popFront(); + error(ident.text ~ " expected"); + break; + } + if (range.peek(ident.text.length - 1) == ident.text) + { + range.popFrontN(ident.text.length); break; } } else range.popFront(); } - if (range.front == '"') + if (!range.empty() && range.front == '"') range.popFront(); else error(`" expected`); diff --git a/stdx/d/parser.d b/stdx/d/parser.d index b977c3c..3b1830e 100644 --- a/stdx/d/parser.d +++ b/stdx/d/parser.d @@ -1780,8 +1780,6 @@ class ClassFour(A, B) if (someTest()) : Super {}}c; auto dos = parseDeclarationOrStatement(); if (dos !is null) node.declarationsAndStatements ~= dos; - /*else - return null;*/ } return node; }