From e8682fa9b993c8bab189b323cc51e7df1d26e7d7 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 28 Sep 2017 17:33:10 +0300 Subject: [PATCH] Use diagnoseDescriptorNotFound() in findClassDescriptor --- .../resolve/lazy/LazyDeclarationResolver.kt | 33 ++----------------- 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.kt index c9d2a25f6c3..8daa2b02cfb 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/LazyDeclarationResolver.kt @@ -24,10 +24,8 @@ import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext -import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingTrace -import org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager import javax.inject.Inject @@ -85,34 +83,9 @@ open class LazyDeclarationResolver @Deprecated("") constructor( private fun findClassDescriptor( classObjectOrScript: KtNamedDeclaration, location: LookupLocation - ): ClassDescriptor { - val descriptor = findClassDescriptorIfAny(classObjectOrScript, location) - - if (descriptor == null) { - val scope = getMemberScopeDeclaredIn(classObjectOrScript, location) - val scopeDescriptor = scope.getContributedClassifier(classObjectOrScript.nameAsSafeName, location) - - var providerInfoString: String? = null - if (scope is AbstractLazyMemberScope<*, *>) { - providerInfoString = scope.toProviderString() - } - throw IllegalArgumentException( - String.format( - "Could not find a classifier for %s.\n" + - "Found descriptor: %s (%s).\n" + - "Scope: %s.\n" + - "Provider: %s.", - classObjectOrScript.getElementTextWithContext(), - scopeDescriptor?.let { DescriptorRenderer.DEBUG_TEXT.render(it) } ?: "null", - scopeDescriptor?.containingDeclaration?.javaClass, - scope, - providerInfoString ?: "null" - ) - ) - } - - return descriptor - } + ): ClassDescriptor = + findClassDescriptorIfAny(classObjectOrScript, location) + ?: (absentDescriptorHandler.diagnoseDescriptorNotFound(classObjectOrScript) as ClassDescriptor) fun resolveToDescriptor(declaration: KtDeclaration): DeclarationDescriptor = resolveToDescriptor(declaration, /*track =*/true) ?: absentDescriptorHandler.diagnoseDescriptorNotFound(declaration)