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:
-12
@@ -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
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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() }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user