[JPS] Fix incremental build after changing Java enum used in Kotlin when
EnumWhenTracker implemented for tracking changed java enum class items, that used in kotlin when expression. #KT-47824 Fixed
This commit is contained in:
committed by
Space
parent
ee8de63497
commit
3d8f140d6b
+8
-4
@@ -17,10 +17,7 @@
|
||||
package org.jetbrains.kotlin.daemon.client
|
||||
|
||||
import org.jetbrains.kotlin.daemon.common.*
|
||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||
import org.jetbrains.kotlin.incremental.components.LookupInfo
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.incremental.components.*
|
||||
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
|
||||
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer
|
||||
import org.jetbrains.kotlin.incremental.js.JsInlineFunctionHash
|
||||
@@ -38,6 +35,7 @@ open class CompilerCallbackServicesFacadeServer(
|
||||
val compilationCanceledStatus: CompilationCanceledStatus? = null,
|
||||
val expectActualTracker: ExpectActualTracker? = null,
|
||||
val inlineConstTracker: InlineConstTracker? = null,
|
||||
val enumWhenTracker: EnumWhenTracker? = null,
|
||||
val incrementalResultsConsumer: IncrementalResultsConsumer? = null,
|
||||
val incrementalDataProvider: IncrementalDataProvider? = null,
|
||||
port: Int = SOCKET_ANY_FREE_PORT
|
||||
@@ -57,6 +55,8 @@ open class CompilerCallbackServicesFacadeServer(
|
||||
|
||||
override fun hasInlineConstTracker(): Boolean = inlineConstTracker != null
|
||||
|
||||
override fun hasEnumWhenTracker(): Boolean = enumWhenTracker != null
|
||||
|
||||
override fun hasIncrementalResultsConsumer(): Boolean = incrementalResultsConsumer != null
|
||||
|
||||
override fun hasIncrementalDataProvider(): Boolean = incrementalDataProvider != null
|
||||
@@ -124,6 +124,10 @@ open class CompilerCallbackServicesFacadeServer(
|
||||
inlineConstTracker?.report(filePath, owner, name, constType) ?: throw NullPointerException("inlineConstTracker was not initialized")
|
||||
}
|
||||
|
||||
override fun enumWhenTracker_report(whenUsageClassPath: String, enumClassFqName: String) {
|
||||
enumWhenTracker?.report(whenUsageClassPath, enumClassFqName) ?: throw NullPointerException("enumWhenTracker was not initialized")
|
||||
}
|
||||
|
||||
override fun incrementalResultsConsumer_processHeader(headerMetadata: ByteArray) {
|
||||
incrementalResultsConsumer!!.processHeader(headerMetadata)
|
||||
}
|
||||
|
||||
+8
@@ -51,6 +51,9 @@ interface CompilerCallbackServicesFacade : Remote {
|
||||
@Throws(RemoteException::class)
|
||||
fun hasInlineConstTracker(): Boolean
|
||||
|
||||
@Throws(RemoteException::class)
|
||||
fun hasEnumWhenTracker(): Boolean
|
||||
|
||||
@Throws(RemoteException::class)
|
||||
fun hasIncrementalResultsConsumer(): Boolean
|
||||
|
||||
@@ -109,6 +112,11 @@ interface CompilerCallbackServicesFacade : Remote {
|
||||
@Throws(RemoteException::class)
|
||||
fun inlineConstTracker_report(filePath: String, owner: String, name: String, constType: String)
|
||||
|
||||
// ---------------------------------------------------
|
||||
// EnumWhenTracker
|
||||
@Throws(RemoteException::class)
|
||||
fun enumWhenTracker_report(whenUsageClassPath: String, enumClassFqName: String)
|
||||
|
||||
// ---------------------------------------------------
|
||||
// IncrementalResultsConsumer (js)
|
||||
@Throws(RemoteException::class)
|
||||
|
||||
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.daemon.report.DaemonMessageReporter
|
||||
import org.jetbrains.kotlin.daemon.report.DaemonMessageReporterPrintStreamAdapter
|
||||
import org.jetbrains.kotlin.daemon.report.getBuildReporter
|
||||
import org.jetbrains.kotlin.incremental.*
|
||||
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||
@@ -891,6 +892,9 @@ class CompileServiceImpl(
|
||||
if (facade.hasInlineConstTracker()) {
|
||||
builder.register(InlineConstTracker::class.java, RemoteInlineConstTracker(facade, rpcProfiler))
|
||||
}
|
||||
if (facade.hasEnumWhenTracker()) {
|
||||
builder.register(EnumWhenTracker::class.java, RemoteEnumWhenTracker(facade, rpcProfiler))
|
||||
}
|
||||
if (facade.hasIncrementalResultsConsumer()) {
|
||||
builder.register(IncrementalResultsConsumer::class.java, RemoteIncrementalResultsConsumer(facade, eventManager, rpcProfiler))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2010-2021 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.daemon
|
||||
|
||||
import org.jetbrains.kotlin.daemon.common.DummyProfiler
|
||||
import org.jetbrains.kotlin.daemon.common.Profiler
|
||||
import org.jetbrains.kotlin.daemon.common.withMeasure
|
||||
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
||||
|
||||
class RemoteEnumWhenTracker(
|
||||
@Suppress("DEPRECATION") val facade: org.jetbrains.kotlin.daemon.common.CompilerCallbackServicesFacade,
|
||||
val profiler: Profiler = DummyProfiler()
|
||||
): EnumWhenTracker {
|
||||
override fun report(whenExpressionFilePath: String, enumClassFqName: String) {
|
||||
profiler.withMeasure(this) {
|
||||
facade.enumWhenTracker_report(whenExpressionFilePath, enumClassFqName)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user