diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/LightClassBuilder.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/LightClassBuilder.kt index 8ff6e8dac0b..e3171bc800e 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/LightClassBuilder.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/LightClassBuilder.kt @@ -60,6 +60,8 @@ fun buildLightClass( generate(state, files) val javaFileStub = classBuilderFactory.result() + + stubComputationTrackerInstance(project)?.onStubComputed(javaFileStub, context) return LightClassBuilderResult(javaFileStub, context.bindingContext, state.collectedExtraJvmDiagnostics) } catch (e: ProcessCanceledException) { throw e diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/stubComputationTracker.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/stubComputationTracker.kt new file mode 100644 index 00000000000..b968d95177b --- /dev/null +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/stubComputationTracker.kt @@ -0,0 +1,17 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.cli.jvm.compiler.builder + +import com.intellij.openapi.project.Project +import com.intellij.psi.impl.java.stubs.PsiJavaFileStub + +fun stubComputationTrackerInstance(project: Project): StubComputationTracker? { + return project.getComponent(StubComputationTracker::class.java) +} + +interface StubComputationTracker { + fun onStubComputed(javaFileStub: PsiJavaFileStub, context: LightClassConstructionContext) +}