This is an automated email from the ASF dual-hosted git repository. jlahoda pushed a commit to branch release90 in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git
commit 6a68dd848b8d2789df19f9a6a83627df02c54443 Author: Arunava Sinha <[email protected]> AuthorDate: Mon May 28 16:04:31 2018 +0530 [NETBEANS-777] JDK10-LVTI: Added null check after nextToken() call in case of var token --- java.lexer/src/org/netbeans/lib/java/lexer/JavaLexer.java | 9 ++------- .../org/netbeans/lib/java/lexer/JavaLexerBatchTest.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/java.lexer/src/org/netbeans/lib/java/lexer/JavaLexer.java b/java.lexer/src/org/netbeans/lib/java/lexer/JavaLexer.java index 1ac252b..d0a598d 100644 --- a/java.lexer/src/org/netbeans/lib/java/lexer/JavaLexer.java +++ b/java.lexer/src/org/netbeans/lib/java/lexer/JavaLexer.java @@ -1051,15 +1051,10 @@ public class JavaLexer implements Lexer<JavaTokenId> { if (AFTER_VAR_TOKENS.contains(next.id())) { do { - if (next.partType() != PartType.COMPLETE) { - break; - } - next = nextToken(); + } while (next != null && AFTER_VAR_TOKENS.contains(next.id())); - } while (AFTER_VAR_TOKENS.contains(next.id())); - - varKeyword = next.id() == JavaTokenId.IDENTIFIER; + varKeyword = next != null && next.id() == JavaTokenId.IDENTIFIER; } input.backup(input.readLengthEOF()- len); diff --git a/java.lexer/test/unit/src/org/netbeans/lib/java/lexer/JavaLexerBatchTest.java b/java.lexer/test/unit/src/org/netbeans/lib/java/lexer/JavaLexerBatchTest.java index 59ccc83..b87cbdd 100644 --- a/java.lexer/test/unit/src/org/netbeans/lib/java/lexer/JavaLexerBatchTest.java +++ b/java.lexer/test/unit/src/org/netbeans/lib/java/lexer/JavaLexerBatchTest.java @@ -683,4 +683,18 @@ public class JavaLexerBatchTest extends TestCase { LexerTestUtilities.assertNextTokenEquals(ts, JavaTokenId.INT_LITERAL, "0"); LexerTestUtilities.assertNextTokenEquals(ts, JavaTokenId.SEMICOLON, ";"); } + + public void testInvalidVarStatement() { + String text = "var "; + InputAttributes attr = new InputAttributes(); + attr.setValue(JavaTokenId.language(), "version", (Supplier<String>) () -> { + return "10"; + }, true); + TokenHierarchy<?> hi = TokenHierarchy.create(text, false, JavaTokenId.language(), EnumSet.noneOf(JavaTokenId.class), attr); + TokenSequence<?> ts = hi.tokenSequence(); + + LexerTestUtilities.assertNextTokenEquals(ts, JavaTokenId.IDENTIFIER, "var"); + LexerTestUtilities.assertNextTokenEquals(ts, JavaTokenId.WHITESPACE, " "); + } + } -- To stop receiving notification emails like this one, please contact [email protected]. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
