From d1cde222546df2d7f793150cb73525b43b4324fd Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Tue, 28 Jun 2022 13:52:08 +0200 Subject: [PATCH] Revert "[light classes] drop old light classes and backend: iteration #7" This reverts commit 545a3162416ef6ad487bc922deefad5c9cf265a8. --- .../jvm/compiler/builder/LightClassBuilder.kt | 2 ++ .../compiler/builder/stubComputationTracker.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/builder/stubComputationTracker.kt 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) +}