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

Reply via email to