[ULC] Enable UL for script classes
This commit is contained in:
+4
-9
@@ -263,21 +263,16 @@ open class KtLightClassForFacade constructor(
|
||||
|
||||
if (sources.isEmpty()) return null
|
||||
|
||||
val ultraLightEnabled =
|
||||
!KtUltraLightSupport.forceUsingOldLightClasses && Registry.`is`("kotlin.use.ultra.light.classes", true)
|
||||
|
||||
val stubProvider = LightClassDataProviderForFileFacade.ByProjectSource(project, fqName, searchScope)
|
||||
val stubValue = CachedValuesManager.getManager(project)
|
||||
.createCachedValue(stubProvider, false)
|
||||
|
||||
val manager = PsiManager.getInstance(project)
|
||||
|
||||
val ultraLightClass = if (ultraLightEnabled)
|
||||
LightClassGenerationSupport.getInstance(project)
|
||||
.createUltraLightClassForFacade(manager, fqName, stubValue, sources)
|
||||
else null
|
||||
|
||||
return ultraLightClass ?: KtLightClassForFacade(manager, fqName, stubValue, sources)
|
||||
return if (!KtUltraLightSupport.forceUsingOldLightClasses && Registry.`is`("kotlin.use.ultra.light.classes", true))
|
||||
LightClassGenerationSupport.getInstance(project).createUltraLightClassForFacade(manager, fqName, stubValue, sources)
|
||||
?: error { "Unable to create UL class for facade" }
|
||||
else KtLightClassForFacade(manager, fqName, stubValue, sources)
|
||||
}
|
||||
|
||||
fun createForFacade(
|
||||
|
||||
+2
-1
@@ -209,7 +209,8 @@ open class KtLightClassForScript(val script: KtScript) : KtLazyLightClass(script
|
||||
}
|
||||
|
||||
if (!forceUsingOldLightClasses && Registry.`is`("kotlin.use.ultra.light.classes", true)) {
|
||||
LightClassGenerationSupport.getInstance(script.project).createUltraLightClassForScript(script)?.let { return it }
|
||||
return LightClassGenerationSupport.getInstance(script.project).createUltraLightClassForScript(script)
|
||||
?: error("UL class cannot be created for script")
|
||||
}
|
||||
|
||||
return KtLightClassForScript(script)
|
||||
|
||||
+3
-1
@@ -55,6 +55,7 @@ import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import java.util.*
|
||||
import javax.swing.Icon
|
||||
import kotlin.jvm.Throws
|
||||
|
||||
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration, computeModifiers: () -> Set<String>) :
|
||||
KtLightModifierList<KtLightClassForSourceDeclaration>(containingClass) {
|
||||
@@ -356,7 +357,8 @@ abstract class KtLightClassForSourceDeclaration(
|
||||
}
|
||||
|
||||
if (!forceUsingOldLightClasses && Registry.`is`("kotlin.use.ultra.light.classes", true)) {
|
||||
LightClassGenerationSupport.getInstance(classOrObject.project).createUltraLightClass(classOrObject)?.let { return it }
|
||||
return LightClassGenerationSupport.getInstance(classOrObject.project).createUltraLightClass(classOrObject)
|
||||
?: error { "Unable to create UL class for ${classOrObject::javaClass.name}" }
|
||||
}
|
||||
|
||||
return when {
|
||||
|
||||
Reference in New Issue
Block a user