Unused Symbol Inspection: Fix exception on deleting unused declaration in IDEA 2016.3

This commit is contained in:
Alexey Sedunov
2016-11-23 16:07:46 +03:00
parent 1bde0e12fd
commit 313d838f1b
2 changed files with 7 additions and 4 deletions

View File

@@ -335,6 +335,7 @@ These artifacts include extensions for the types available in the latter JDKs, s
- [`KT-14501`](https://youtrack.jetbrains.com/issue/KT-14501) Create from Usage: Support array access expressions/binary expressions with type mismatch errors
- [`KT-14500`](https://youtrack.jetbrains.com/issue/KT-14500) Create from Usage: Suggest functional type based on the call with lambda argument and unresolved invoke()
- [`KT-14459`](https://youtrack.jetbrains.com/issue/KT-14459) Initialize with Constructor Parameter: Fix IDE freeze on properties in generic class
- [`KT-14044`](https://youtrack.jetbrains.com/issue/KT-14044) Fix exception on deleting unused declaration in IDEA 2016.3
#### Refactorings

View File

@@ -27,6 +27,8 @@ import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection
import com.intellij.codeInspection.ex.EntryPointsManager
import com.intellij.codeInspection.ex.EntryPointsManagerBase
import com.intellij.codeInspection.ex.EntryPointsManagerImpl
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiClass
@@ -74,7 +76,6 @@ import java.awt.Insets
import java.util.*
import javax.swing.JComponent
import javax.swing.JPanel
import javax.swing.SwingUtilities
class UnusedSymbolInspection : AbstractKotlinInspection() {
companion object {
@@ -359,8 +360,9 @@ class SafeDeleteFix(declaration: KtDeclaration) : LocalQuickFix {
override fun applyFix(project: Project, descriptor: ProblemDescriptor) {
val declaration = descriptor.psiElement.getStrictParentOfType<KtDeclaration>() ?: return
if (!FileModificationService.getInstance().prepareFileForWrite(declaration.containingFile)) return
SwingUtilities.invokeLater {
SafeDeleteHandler.invoke(project, arrayOf(declaration), false)
}
ApplicationManager.getApplication().invokeLater(
{ SafeDeleteHandler.invoke(project, arrayOf(declaration), false) },
ModalityState.NON_MODAL
)
}
}