From a5982281af0f42a2745a9ff0614468cd84d42c7a Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 26 Oct 2015 14:49:56 +0300 Subject: [PATCH] Temporary fix for problem with ownerDescriptor in ImportingScope --- .../jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt | 5 ++++- .../jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt | 2 +- .../quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt index a2a72b5090e..cc4735b4172 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ExplicitImportsScope.kt @@ -22,7 +22,10 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.utils.Printer import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull -public class ExplicitImportsScope(private val descriptors: Collection) : ImportingScope by ImportingScope.Empty { +public class ExplicitImportsScope( + private val descriptors: Collection, + override val ownerDescriptor: DeclarationDescriptor //TODO: temporary? +) : ImportingScope by ImportingScope.Empty { override fun getContributedClassifier(name: Name, location: LookupLocation) = descriptors.filter { it.getName() == name }.firstIsInstanceOrNull() diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt index d3ed6b41b74..8d9f9210607 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt @@ -191,7 +191,7 @@ public class ShadowedDeclarationsFilter private constructor( var scope = context.getResolutionScope(bindingContext, resolutionFacade) if (descriptorsToImport.isNotEmpty()) { - scope = scope.addImportScope(ExplicitImportsScope(descriptorsToImport)) + scope = scope.addImportScope(ExplicitImportsScope(descriptorsToImport, scope.ownerDescriptor)) } val dataFlowInfo = bindingContext.getDataFlowInfo(context) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt index 4d25ba81d05..ba66575c0b3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt @@ -207,7 +207,7 @@ object ReplaceWithAnnotationAnalyzer { private fun buildExplicitImportsScope(annotation: ReplaceWith, resolutionFacade: ResolutionFacade, module: ModuleDescriptor): ExplicitImportsScope { val importedSymbols = importFqNames(annotation) .flatMap { resolutionFacade.resolveImportReference(module, it) } - return ExplicitImportsScope(importedSymbols) + return ExplicitImportsScope(importedSymbols, module) } private fun importFqNames(annotation: ReplaceWith): List {