[light classes] drop old light classes and backend: iteration #10
add missing is InvalidLightClassDataHolder check ^KT-48773
This commit is contained in:
+9
-2
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
|
|||||||
import org.jetbrains.kotlin.asJava.classes.safeIsLocal
|
import org.jetbrains.kotlin.asJava.classes.safeIsLocal
|
||||||
import org.jetbrains.kotlin.asJava.classes.safeScript
|
import org.jetbrains.kotlin.asJava.classes.safeScript
|
||||||
import org.jetbrains.kotlin.asJava.classes.shouldNotBeVisibleAsLightClass
|
import org.jetbrains.kotlin.asJava.classes.shouldNotBeVisibleAsLightClass
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.builder.InvalidLightClassDataHolder
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.builder.LightClassDataHolder
|
import org.jetbrains.kotlin.cli.jvm.compiler.builder.LightClassDataHolder
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.builder.buildLightClass
|
import org.jetbrains.kotlin.cli.jvm.compiler.builder.buildLightClass
|
||||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
||||||
@@ -37,10 +38,16 @@ object CliExtraDiagnosticsProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val containingScript = kclass.containingKtFile.safeScript()
|
val containingScript = kclass.containingKtFile.safeScript()
|
||||||
return when {
|
val lightClassDataHolder = when {
|
||||||
!kclass.safeIsLocal() && containingScript != null -> getLightClassCachedValue(containingScript).value
|
!kclass.safeIsLocal() && containingScript != null -> getLightClassCachedValue(containingScript).value
|
||||||
else -> getLightClassCachedValue(kclass).value
|
else -> getLightClassCachedValue(kclass).value
|
||||||
}.extraDiagnostics
|
}
|
||||||
|
|
||||||
|
return if (lightClassDataHolder is InvalidLightClassDataHolder) {
|
||||||
|
Diagnostics.EMPTY
|
||||||
|
} else {
|
||||||
|
lightClassDataHolder.extraDiagnostics
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun forFacade(file: KtFile, moduleScope: GlobalSearchScope): Diagnostics {
|
fun forFacade(file: KtFile, moduleScope: GlobalSearchScope): Diagnostics {
|
||||||
|
|||||||
Reference in New Issue
Block a user