JVM: remove StubClassBuilder and its usage

After legacy light classes were removed, the only remaining usage was in
KotlinLightClassBuilderFactory where we ran JVM backend in the
LIGHT_CLASSES mode, and that was only used from diagnostic tests to
report JVM backend diagnostics.

We don't actually need to build stubs here, so we can just use ASM's
class writer, which means that StubClassBuilder and all its dependencies
can be removed.
This commit is contained in:
Alexander Udalov
2024-03-09 00:14:37 +01:00
committed by Space Team
parent e5ad035039
commit 2f056fe155
9 changed files with 17 additions and 378 deletions
@@ -48,7 +48,7 @@ object CliExtraDiagnosticsProvider {
.ifEmpty { return Diagnostics.EMPTY }
val context = (LightClassGenerationSupport.getInstance(project) as CliLightClassGenerationSupport).context
val (_, _, diagnostics) = extraJvmDiagnosticsFromBackend(
val (_, diagnostics) = extraJvmDiagnosticsFromBackend(
facadeFqName.parent(),
facadeCollection,
ClassFilterForFacade,
@@ -33,7 +33,7 @@ internal class LightClassDataProviderForClassOrObject(
//force resolve companion for light class generation
cliSupport.traceHolder.bindingContext.get(BindingContext.CLASS, classOrObject)?.companionObjectDescriptor
val (_, bindingContext, diagnostics) = extraJvmDiagnosticsFromBackend(
val (bindingContext, diagnostics) = extraJvmDiagnosticsFromBackend(
packageFqName,
listOf(file),
ClassFilterForClassOrObject(classOrObject),