Skip to content

Commit a47284a

Browse files
authored
Expand tests on parser to acheive higher coverage and minor fixs (#212)
* Expand tests on parser to achieve higher coverage * Delete unreachable branch * Add fix for Node with leading comma * Add fix for duplicate statement when invalid member def statement appears * Add fix for unset end of kvp
1 parent 9c6ead3 commit a47284a

File tree

3 files changed

+662
-4
lines changed

3 files changed

+662
-4
lines changed

src/main/java/software/amazon/smithy/lsp/syntax/Parser.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Syntax.Node parseNode() {
5555
int start = position();
5656
do {
5757
skip();
58-
} while (!isWs() && !isNodeStructuralBreakpoint() && !eof());
58+
} while (!isWs() && !isNodeStructuralBreakpoint() && !eof() && is(','));
5959
int end = position();
6060
Syntax.Node.Err err = new Syntax.Node.Err("unexpected token " + document.copySpan(start, end));
6161
err.start = start;
@@ -310,7 +310,9 @@ private Syntax.Node.Err kvp(Syntax.Node.Kvps kvps, char close) {
310310
if (err != null) {
311311
addError(err);
312312
}
313-
313+
if (kvp != null) {
314+
setEnd(kvp);
315+
}
314316
return nodeErr("expected value");
315317
}
316318

@@ -810,7 +812,6 @@ private void member(Syntax.Statement.Block parent) {
810812
addErr(position(), position(), "expected :");
811813
if (isWs() || is('}')) {
812814
setEnd(memberDef);
813-
addStatement(memberDef);
814815
return;
815816
}
816817
}
@@ -963,6 +964,7 @@ private Syntax.Ident ident() {
963964
} while (isIdentChar());
964965

965966
int end = position();
967+
966968
if (start == end) {
967969
addErr(start, end, "expected identifier");
968970
return Syntax.Ident.EMPTY;

0 commit comments

Comments
 (0)