[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
|
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 stubProvider = LightClassDataProviderForFileFacade.ByProjectSource(project, fqName, searchScope)
|
||||||
val stubValue = CachedValuesManager.getManager(project)
|
val stubValue = CachedValuesManager.getManager(project)
|
||||||
.createCachedValue(stubProvider, false)
|
.createCachedValue(stubProvider, false)
|
||||||
|
|
||||||
val manager = PsiManager.getInstance(project)
|
val manager = PsiManager.getInstance(project)
|
||||||
|
|
||||||
val ultraLightClass = if (ultraLightEnabled)
|
return if (!KtUltraLightSupport.forceUsingOldLightClasses && Registry.`is`("kotlin.use.ultra.light.classes", true))
|
||||||
LightClassGenerationSupport.getInstance(project)
|
LightClassGenerationSupport.getInstance(project).createUltraLightClassForFacade(manager, fqName, stubValue, sources)
|
||||||
.createUltraLightClassForFacade(manager, fqName, stubValue, sources)
|
?: error { "Unable to create UL class for facade" }
|
||||||
else null
|
else KtLightClassForFacade(manager, fqName, stubValue, sources)
|
||||||
|
|
||||||
return ultraLightClass ?: KtLightClassForFacade(manager, fqName, stubValue, sources)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createForFacade(
|
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)) {
|
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)
|
return KtLightClassForScript(script)
|
||||||
|
|||||||
+3
-1
@@ -55,6 +55,7 @@ import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
|
import kotlin.jvm.Throws
|
||||||
|
|
||||||
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration, computeModifiers: () -> Set<String>) :
|
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration, computeModifiers: () -> Set<String>) :
|
||||||
KtLightModifierList<KtLightClassForSourceDeclaration>(containingClass) {
|
KtLightModifierList<KtLightClassForSourceDeclaration>(containingClass) {
|
||||||
@@ -356,7 +357,8 @@ abstract class KtLightClassForSourceDeclaration(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!forceUsingOldLightClasses && Registry.`is`("kotlin.use.ultra.light.classes", true)) {
|
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 {
|
return when {
|
||||||
|
|||||||
Reference in New Issue
Block a user