diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt index c62e8468f3f..3d90c349cd2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtCodeFragment.kt @@ -107,7 +107,10 @@ public abstract class KtCodeFragment( } public fun importsAsImportList(): KtImportList? { - return KtPsiFactory(this).createFile(imports.joinToString("\n")).getImportList() + if (!imports.isEmpty() && context != null) { + return KtPsiFactory(this).createAnalyzableFile("imports_for_codeFragment.kt", imports.joinToString("\n"), context).importList + } + return null } override fun getImportDirectives(): List { diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt index 0aba63dd828..629efd5cde6 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt @@ -97,6 +97,8 @@ public fun ImplicitReceiver.asExpression(resolutionScope: LexicalScope, psiFacto } public fun KtImportDirective.targetDescriptors(resolutionFacade: ResolutionFacade = this.getResolutionFacade()): Collection { + // For codeFragments imports are created in dummy file + if (this.getContainingKtFile().doNotAnalyze != null) return emptyList() val nameExpression = importedReference?.getQualifiedElementSelector() as? KtSimpleNameExpression ?: return emptyList() return nameExpression.mainReference.resolveToDescriptors(resolutionFacade.analyze(nameExpression)) }