From 3beef2b22e283aa2693a0850ac8e631cd8ef19b0 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 20 Jun 2019 13:41:03 +0300 Subject: [PATCH] New J2K: do not apply diagnostic based inspections if target element is not in the converting range --- .../nj2k/postProcessing/diagnosticBasedPostProcessing.kt | 7 +++++-- .../src/org/jetbrains/kotlin/nj2k/postProcessing/utils.kt | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/diagnosticBasedPostProcessing.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/diagnosticBasedPostProcessing.kt index 86d7f934bbc..dc0e19bb3f2 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/diagnosticBasedPostProcessing.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/diagnosticBasedPostProcessing.kt @@ -41,8 +41,11 @@ class DiagnosticBasedPostProcessingGroup(diagnosticBasedProcessings: List - runWriteAction { fix(diagnostic) } + val range = rangeMarker?.range ?: file.textRange + if (diagnostic.psiElement.isInRange(range)) { + diagnosticToFix[diagnostic.factory]?.forEach { fix -> + runWriteAction { fix(diagnostic) } + } } } } diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/utils.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/utils.kt index 7274b2a71f4..9f9d25b6bd5 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/utils.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/utils.kt @@ -5,11 +5,13 @@ package org.jetbrains.kotlin.nj2k.postProcessing +import com.intellij.openapi.util.TextRange import com.intellij.psi.PsiElement import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.searches.ReferencesSearch import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny +import org.jetbrains.kotlin.idea.core.util.range import org.jetbrains.kotlin.idea.references.KtSimpleNameReference import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.psi.* @@ -74,4 +76,7 @@ fun KtElement.hasUsagesOutsideOf(inElement: KtElement, outsideElements: List List.descendantsOfType(): List = - flatMap { it.collectDescendantsOfType() } \ No newline at end of file + flatMap { it.collectDescendantsOfType() } + +fun PsiElement.isInRange(outerRange: TextRange) = + outerRange.contains(range) \ No newline at end of file