diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/KotlinCopyPasteReferenceProcessor.kt b/idea/src/org/jetbrains/jet/plugin/codeInsight/KotlinCopyPasteReferenceProcessor.kt index f99c6bdb235..7c5449ca523 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/KotlinCopyPasteReferenceProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/KotlinCopyPasteReferenceProcessor.kt @@ -100,12 +100,19 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor - collectReferenceDataFromElement(element, file, startOffset, startOffsets, endOffsets) + val collectedData = try { + zip(startOffsets, endOffsets).toList().flatMap { + val (startOffset, endOffset) = it + CollectHighlightsUtil.getElementsInRange(file, startOffset, endOffset).flatMap { element -> + collectReferenceDataFromElement(element, file, startOffset, startOffsets, endOffsets) + } } } + catch (e: Throwable) { + LOG.error("Exception in processing references for copy paste in file ${file.getName()}}", e) + return null + } + if (collectedData.isEmpty()) { return null } @@ -241,7 +248,13 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor()) + private val IGNORE_REFERENCES_INSIDE: Array?> = array( javaClass(), javaClass(), @@ -296,7 +311,6 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor()) private fun createQualifiedExpression(project: Project, text: String): JetDotQualifiedExpression { val newExpression = JetPsiFactory.createExpression(project, text)