diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt index c61efd8e67d..3c791096d90 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt @@ -66,7 +66,6 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG private fun getContextForNonLocalClassOrObject(classOrObject: KtClassOrObject): LightClassConstructionContext { val resolutionFacade = classOrObject.getResolutionFacade() - ForceResolveUtil.forceResolveAllContents(resolutionFacade.resolveToDescriptor(classOrObject)) val bindingContext = if (classOrObject is KtClass && classOrObject.isAnnotation()) { // need to make sure default values for parameters are resolved // because java resolve depends on whether there is a default value for an annotation attribute @@ -76,6 +75,10 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG else { resolutionFacade.analyze(classOrObject) } + val classDescriptor = bindingContext.get(BindingContext.CLASS, classOrObject).sure { + "Class descriptor was not found for ${classOrObject.getElementTextWithContext()}" + } + ForceResolveUtil.forceResolveAllContents(classDescriptor) return LightClassConstructionContext(bindingContext, resolutionFacade.moduleDescriptor) }