From c3df743a28a146f2bc2adbbe50f9c165aefea9b8 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 16 Jun 2016 22:32:50 +0300 Subject: [PATCH] FileScopeFactory: extra imports computed via virtual file as opposed to KtFile This fixes completion session acting as if there are no imports --- .../org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt index 99181daf696..9ed12ba3205 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/FileScopeFactory.kt @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.ImportPath import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver import org.jetbrains.kotlin.resolve.TemporaryBindingTrace -import org.jetbrains.kotlin.resolve.bindingContextUtil.recordScope import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.ImportingScope import org.jetbrains.kotlin.resolve.scopes.LexicalScope @@ -73,8 +72,10 @@ class FileScopeFactory( val explicitImportResolver = createImportResolver(ExplicitImportsIndexed(imports), bindingTrace) val allUnderImportResolver = createImportResolver(AllUnderImportsIndexed(imports), bindingTrace) - val extraImports = ktImportsFactory.createImportDirectives(getScriptExternalDependencies(file).flatMap { it.imports.map { ImportPath(it) } }) - val allImplicitImports = defaultImports + extraImports + val extraImports = file.originalFile.virtualFile?.let { getScriptExternalDependencies(it, file.project) } + ?.flatMap { ktImportsFactory.createImportDirectives(it.imports.map { ImportPath(it) }) } + + val allImplicitImports = defaultImports + extraImports.orEmpty() val defaultImportsFiltered = if (aliasImportNames.isEmpty()) { // optimization allImplicitImports