From 153ca8675f0995ecf08339cb0d3678d097aa3ca2 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 30 Aug 2021 18:49:55 +0300 Subject: [PATCH] Fail fast in case of invalidation in getContributedClassifier Related to IDE problems like descriptor not found --- .../resolve/lazy/descriptors/AbstractLazyMemberScope.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt index 00fc0a4214a..7bc90ff9777 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt @@ -23,12 +23,14 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.calls.components.InferenceSession +import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.lazy.LazyClassContext import org.jetbrains.kotlin.resolve.lazy.declarations.AbstractPsiBasedDeclarationProvider import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProvider import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl +import org.jetbrains.kotlin.resolve.source.KotlinSourceElement import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.utils.Printer @@ -84,6 +86,9 @@ protected constructor( if (!typeAlias.isExpect) return typeAlias if (result == null) result = typeAlias } + if ((result?.source as? KotlinSourceElement)?.psi?.isValid == false) { + throw AssertionError("PSI is invalidated for contributed classifier ${result.fqNameSafe}") + } return result }