Fix incremental build after changing Java const used as class property

Report Java static final constant with InlineConstantTracker, used as class property in Kotlin for further registration in JPS

#KT-49177 Fixed
This commit is contained in:
Aleksei.Cherepanov
2021-10-09 00:29:19 +03:00
committed by TeamCityServer
parent 931779f1c6
commit 276fb77155
27 changed files with 191 additions and 16 deletions
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.frontend.di.configureIncrementalCompilation
import org.jetbrains.kotlin.frontend.di.configureModule
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
import org.jetbrains.kotlin.platform.js.JsPlatforms
@@ -45,6 +46,7 @@ fun createContainerForJS(
languageVersionSettings: LanguageVersionSettings,
lookupTracker: LookupTracker,
expectActualTracker: ExpectActualTracker,
inlineConstTracker: InlineConstTracker,
additionalPackages: List<PackageFragmentProvider>,
targetEnvironment: TargetEnvironment,
): StorageComponentContainer {
@@ -57,7 +59,7 @@ fun createContainerForJS(
languageVersionSettings
)
configureIncrementalCompilation(lookupTracker, expectActualTracker)
configureIncrementalCompilation(lookupTracker, expectActualTracker, inlineConstTracker)
configureStandardResolveComponents()
useInstance(declarationProviderFactory)
@@ -80,11 +82,12 @@ fun createTopDownAnalyzerForJs(
languageVersionSettings: LanguageVersionSettings,
lookupTracker: LookupTracker,
expectActualTracker: ExpectActualTracker,
inlineConstTracker: InlineConstTracker,
additionalPackages: List<PackageFragmentProvider>,
targetEnvironment: TargetEnvironment,
): LazyTopDownAnalyzer {
return createContainerForJS(
moduleContext, bindingTrace, declarationProviderFactory, languageVersionSettings,
lookupTracker, expectActualTracker, additionalPackages, targetEnvironment
lookupTracker, expectActualTracker, inlineConstTracker, additionalPackages, targetEnvironment
).get<LazyTopDownAnalyzer>()
}
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.frontend.js.di.createContainerForJS
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
@@ -105,6 +106,7 @@ abstract class AbstractTopDownAnalyzerFacadeForJS {
): JsAnalysisResult {
val lookupTracker = configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING
val expectActualTracker = configuration.get(CommonConfigurationKeys.EXPECT_ACTUAL_TRACKER) ?: ExpectActualTracker.DoNothing
val inlineConstTracker = configuration.get(CommonConfigurationKeys.INLINE_CONST_TRACKER) ?: InlineConstTracker.DoNothing
val languageVersionSettings = configuration.languageVersionSettings
val packageFragment = configuration[JSConfigurationKeys.INCREMENTAL_DATA_PROVIDER]?.let {
loadIncrementalCacheMetadata(it, moduleContext, lookupTracker, languageVersionSettings)
@@ -116,6 +118,7 @@ abstract class AbstractTopDownAnalyzerFacadeForJS {
languageVersionSettings,
lookupTracker,
expectActualTracker,
inlineConstTracker,
additionalPackages + listOfNotNull(packageFragment),
targetEnvironment,
)