Do not try inexact resolve on scripts

Script light psi depends on script definition
    which is costly to compute correctly

 #KT-25395 Fixed
This commit is contained in:
Pavel V. Talanov
2018-07-13 15:11:29 +02:00
parent 5b8df2f6f2
commit 48a38f1820
2 changed files with 1 additions and 13 deletions
@@ -168,18 +168,6 @@ internal object IDELightClassContexts {
return IDELightClassConstructionContext(resolveSession.bindingContext, resolveSession.moduleDescriptor, LIGHT) return IDELightClassConstructionContext(resolveSession.bindingContext, resolveSession.moduleDescriptor, LIGHT)
} }
fun lightContextForScript(script: KtScript): LightClassConstructionContext {
val resolveSession = setupAdHocResolve(
script.project,
script.getResolutionFacade().moduleDescriptor,
listOf(script.containingKtFile)
)
ForceResolveUtil.forceResolveAllContents(resolveSession.resolveToDescriptor(script))
return IDELightClassConstructionContext(resolveSession.bindingContext, resolveSession.moduleDescriptor, LIGHT)
}
private fun isDummyResolveApplicable(classOrObject: KtClassOrObject): Boolean { private fun isDummyResolveApplicable(classOrObject: KtClassOrObject): Boolean {
if (classOrObject.hasLightClassMatchingErrors) return false if (classOrObject.hasLightClassMatchingErrors) return false
@@ -71,7 +71,7 @@ class IDELightClassGenerationSupport(project: Project) : LightClassGenerationSup
return LazyLightClassDataHolder.ForScript( return LazyLightClassDataHolder.ForScript(
builder, builder,
exactContextProvider = { IDELightClassContexts.contextForScript(script) }, exactContextProvider = { IDELightClassContexts.contextForScript(script) },
dummyContextProvider = { IDELightClassContexts.lightContextForScript(script) }, dummyContextProvider = { null },
diagnosticsHolderProvider = { script.getDiagnosticsHolder() } diagnosticsHolderProvider = { script.getDiagnosticsHolder() }
) )
} }