FileScopeFactory: extra imports computed via virtual file as opposed to KtFile
This fixes completion session acting as if there are no imports
This commit is contained in:
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.resolve.BindingTrace
|
|||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver
|
import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver
|
||||||
import org.jetbrains.kotlin.resolve.TemporaryBindingTrace
|
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.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ImportingScope
|
import org.jetbrains.kotlin.resolve.scopes.ImportingScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
@@ -73,8 +72,10 @@ class FileScopeFactory(
|
|||||||
val explicitImportResolver = createImportResolver(ExplicitImportsIndexed(imports), bindingTrace)
|
val explicitImportResolver = createImportResolver(ExplicitImportsIndexed(imports), bindingTrace)
|
||||||
val allUnderImportResolver = createImportResolver(AllUnderImportsIndexed(imports), bindingTrace)
|
val allUnderImportResolver = createImportResolver(AllUnderImportsIndexed(imports), bindingTrace)
|
||||||
|
|
||||||
val extraImports = ktImportsFactory.createImportDirectives(getScriptExternalDependencies(file).flatMap { it.imports.map { ImportPath(it) } })
|
val extraImports = file.originalFile.virtualFile?.let { getScriptExternalDependencies(it, file.project) }
|
||||||
val allImplicitImports = defaultImports + extraImports
|
?.flatMap { ktImportsFactory.createImportDirectives(it.imports.map { ImportPath(it) }) }
|
||||||
|
|
||||||
|
val allImplicitImports = defaultImports + extraImports.orEmpty()
|
||||||
|
|
||||||
val defaultImportsFiltered = if (aliasImportNames.isEmpty()) { // optimization
|
val defaultImportsFiltered = if (aliasImportNames.isEmpty()) { // optimization
|
||||||
allImplicitImports
|
allImplicitImports
|
||||||
|
|||||||
Reference in New Issue
Block a user