You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jl...@apache.org on 2018/06/18 04:38:54 UTC
[incubator-netbeans] 02/20: [NETBEANS-777] JDK10-LVTI: Added null
check after nextToken() call in case of var token
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 <ar...@oracle.com>
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
jlahoda@apache.org.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists