From 911ad325801888e4f2e64d3da220a1c14efdffeb Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 31 Oct 2018 15:35:10 +0900 Subject: [PATCH] Kapt: Check if the psiElement is bound to some Document instance before asking for its text range textRange has an assertion that fails if the Document is not set. --- .../kotlin/kapt3/stubs/KaptLineMappingCollector.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt index d91e7a7fc53..d826aa89fdf 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KaptLineMappingCollector.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.kapt3.stubs +import com.intellij.openapi.fileEditor.FileDocumentManager import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.sun.tools.javac.tree.JCTree @@ -57,6 +58,11 @@ class KaptLineMappingCollector(private val kaptContext: KaptContextForStubGenera } private fun register(fqName: String, psiElement: PsiElement) { + val containingVirtualFile = psiElement.containingFile.virtualFile + if (containingVirtualFile == null || FileDocumentManager.getInstance().getDocument(containingVirtualFile) == null) { + return + } + val textRange = psiElement.textRange ?: return val (path, isRelative) = getFilePathRelativePreferred(psiElement.containingFile)