From 92a1c3cc465a1b874bfd021c9e4c87e0fb884c65 Mon Sep 17 00:00:00 2001 From: Ilya Muradyan Date: Mon, 14 Nov 2022 21:19:27 +0100 Subject: [PATCH] KTNB: fix NPE ^KTNB-76 fixed GitOrigin-RevId: 14acc214666225e66b95174fc6a8b69839c088cd --- .../script/ucache/kotlinScriptImplementationSwitcher.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/ucache/kotlinScriptImplementationSwitcher.kt b/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/ucache/kotlinScriptImplementationSwitcher.kt index 743ee1c43776..cd92a8319d7a 100644 --- a/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/ucache/kotlinScriptImplementationSwitcher.kt +++ b/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/core/script/ucache/kotlinScriptImplementationSwitcher.kt @@ -25,20 +25,23 @@ val scriptsAsEntities: Boolean fun getScriptDependenciesClassFilesScope(project: Project, ktFile: KtFile): GlobalSearchScope { require(ktFile.isScript()) { "argument must be a script: ${ktFile.virtualFilePath}" } + val vFile = ktFile.virtualFile ?: ktFile.viewProvider.virtualFile + return if (scriptsAsEntities) { + val vFilePath = (ktFile.virtualFilePath as String?) ?: vFile.path val entityStorage = WorkspaceModel.getInstance(project).entityStorage.current - val scriptEntity = entityStorage.resolve(ScriptId(ktFile.virtualFilePath)) + val scriptEntity = entityStorage.resolve(ScriptId(vFilePath)) if (scriptEntity == null) { // WorkspaceModel doesn't know about the file yet. But once the latest sync is over it will. // We cannot synchronously call its syncScriptEntities() because it requires platform write-lock acquisition and this function // is called under platform read-lock. - ScriptConfigurationManager.getInstance(project).getScriptDependenciesClassFilesScope(ktFile.virtualFile) + ScriptConfigurationManager.getInstance(project).getScriptDependenciesClassFilesScope(vFile) } else { NonClasspathDirectoriesScope.compose(scriptEntity.listDependencies(KotlinScriptLibraryRootTypeId.COMPILED)) } } else { - ScriptConfigurationManager.getInstance(project).getScriptDependenciesClassFilesScope(ktFile.virtualFile) + ScriptConfigurationManager.getInstance(project).getScriptDependenciesClassFilesScope(vFile) } }