From 6e444baedbb6b89ba7f1c09a1c3df138928b784d Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Wed, 27 May 2015 15:32:00 +0300 Subject: [PATCH] Indexer advance() should check previousTokens size before look inside fixes IndexOutOfBounds during indexing --- .../src/org/jetbrains/kotlin/idea/search/KotlinIndexers.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/KotlinIndexers.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/KotlinIndexers.kt index ba83f221ae8..fad2bd15222 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/KotlinIndexers.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/KotlinIndexers.kt @@ -45,12 +45,13 @@ class KotlinFilterLexer(table: OccurrenceConsumer): BaseFilterLexer(JetLexer(), JetTokens.RBRACKET, JetTokens.SEMICOLON, JetTokens.COMMA, JetTokens.DOT ) - private var previousTokens = LinkedList() + private val previousTokens = LinkedList() override fun advance() { fun isMultiDeclarationPosition(): Boolean { - return previousTokens[0] == JetTokens.VAL_KEYWORD || previousTokens[0] == JetTokens.VAR_KEYWORD - || previousTokens[0] == JetTokens.LPAR && previousTokens[1] == JetTokens.FOR_KEYWORD + return previousTokens.firstOrNull() == JetTokens.VAL_KEYWORD + || previousTokens.firstOrNull() == JetTokens.VAR_KEYWORD + || previousTokens.size() == 2 && previousTokens[0] == JetTokens.LPAR && previousTokens[1] == JetTokens.FOR_KEYWORD } val tokenType = myDelegate.getTokenType()