Fix of "Replace array of with array literal"

Do not apply if module does not support the relevant feature
Related to KT-17164
This commit is contained in:
Mikhail Glukhikh
2017-06-15 18:22:08 +03:00
parent b9fb7cc3a5
commit ce55d9e364
@@ -26,7 +26,7 @@ import com.intellij.psi.PsiElementVisitor
import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment
import org.jetbrains.kotlin.config.LanguageFeature.ArrayLiteralsInAnnotations import org.jetbrains.kotlin.config.LanguageFeature.ArrayLiteralsInAnnotations
import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings import org.jetbrains.kotlin.idea.project.languageVersionSettings
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.CollectionLiteralResolver import org.jetbrains.kotlin.resolve.CollectionLiteralResolver
@@ -43,8 +43,7 @@ class ReplaceArrayOfWithLiteralInspection : AbstractKotlinInspection() {
override fun visitCallExpression(expression: KtCallExpression) { override fun visitCallExpression(expression: KtCallExpression) {
super.visitCallExpression(expression) super.visitCallExpression(expression)
val project = expression.project if (!expression.languageVersionSettings.supportsFeature(ArrayLiteralsInAnnotations) &&
if (!project.getLanguageVersionSettings().supportsFeature(ArrayLiteralsInAnnotations) &&
!ApplicationManager.getApplication().isUnitTestMode) return !ApplicationManager.getApplication().isUnitTestMode) return
val calleeExpression = expression.calleeExpression as? KtNameReferenceExpression ?: return val calleeExpression = expression.calleeExpression as? KtNameReferenceExpression ?: return