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:
committed by
TeamCityServer
parent
931779f1c6
commit
276fb77155
+4
-2
@@ -45,6 +45,7 @@ import org.jetbrains.kotlin.frontend.java.di.initJvmBuiltInsForTopDownAnalysis
|
|||||||
import org.jetbrains.kotlin.frontend.java.di.initialize
|
import org.jetbrains.kotlin.frontend.java.di.initialize
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
|
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||||
import org.jetbrains.kotlin.ir.backend.jvm.jvmLibrariesProvidedByDefault
|
import org.jetbrains.kotlin.ir.backend.jvm.jvmLibrariesProvidedByDefault
|
||||||
import org.jetbrains.kotlin.javac.components.JavacBasedClassFinder
|
import org.jetbrains.kotlin.javac.components.JavacBasedClassFinder
|
||||||
import org.jetbrains.kotlin.javac.components.JavacBasedSourceElementFactory
|
import org.jetbrains.kotlin.javac.components.JavacBasedSourceElementFactory
|
||||||
@@ -160,6 +161,7 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
val incrementalComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
val incrementalComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
|
||||||
val lookupTracker = configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING
|
val lookupTracker = configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING
|
||||||
val expectActualTracker = configuration.get(CommonConfigurationKeys.EXPECT_ACTUAL_TRACKER) ?: ExpectActualTracker.DoNothing
|
val expectActualTracker = configuration.get(CommonConfigurationKeys.EXPECT_ACTUAL_TRACKER) ?: ExpectActualTracker.DoNothing
|
||||||
|
val inlineConstTracker = configuration.get(CommonConfigurationKeys.INLINE_CONST_TRACKER) ?: InlineConstTracker.DoNothing
|
||||||
val targetIds = configuration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
val targetIds = configuration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
|
||||||
|
|
||||||
val separateModules = !configuration.getBoolean(JVMConfigurationKeys.USE_SINGLE_MODULE)
|
val separateModules = !configuration.getBoolean(JVMConfigurationKeys.USE_SINGLE_MODULE)
|
||||||
@@ -194,7 +196,7 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
val dependenciesContainer = createContainerForLazyResolveWithJava(
|
val dependenciesContainer = createContainerForLazyResolveWithJava(
|
||||||
jvmPlatform,
|
jvmPlatform,
|
||||||
dependenciesContext, trace, DeclarationProviderFactory.EMPTY, dependencyScope, moduleClassResolver,
|
dependenciesContext, trace, DeclarationProviderFactory.EMPTY, dependencyScope, moduleClassResolver,
|
||||||
targetEnvironment, lookupTracker, expectActualTracker,
|
targetEnvironment, lookupTracker, expectActualTracker, inlineConstTracker,
|
||||||
packagePartProvider(dependencyScope), languageVersionSettings,
|
packagePartProvider(dependencyScope), languageVersionSettings,
|
||||||
useBuiltInsProvider = true,
|
useBuiltInsProvider = true,
|
||||||
configureJavaClassFinder = configureJavaClassFinder,
|
configureJavaClassFinder = configureJavaClassFinder,
|
||||||
@@ -229,7 +231,7 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
val container = createContainerForLazyResolveWithJava(
|
val container = createContainerForLazyResolveWithJava(
|
||||||
jvmPlatform,
|
jvmPlatform,
|
||||||
moduleContext, trace, declarationProviderFactory(storageManager, files), sourceScope, moduleClassResolver,
|
moduleContext, trace, declarationProviderFactory(storageManager, files), sourceScope, moduleClassResolver,
|
||||||
targetEnvironment, lookupTracker, expectActualTracker,
|
targetEnvironment, lookupTracker, expectActualTracker, inlineConstTracker,
|
||||||
partProvider, languageVersionSettings,
|
partProvider, languageVersionSettings,
|
||||||
useBuiltInsProvider = true,
|
useBuiltInsProvider = true,
|
||||||
configureJavaClassFinder = configureJavaClassFinder,
|
configureJavaClassFinder = configureJavaClassFinder,
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.frontend.di.configureIncrementalCompilation
|
|||||||
import org.jetbrains.kotlin.frontend.di.configureModule
|
import org.jetbrains.kotlin.frontend.di.configureModule
|
||||||
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
|
import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
|
||||||
import org.jetbrains.kotlin.load.java.InternalFlexibleTypeTransformer
|
import org.jetbrains.kotlin.load.java.InternalFlexibleTypeTransformer
|
||||||
@@ -61,6 +62,7 @@ fun createContainerForLazyResolveWithJava(
|
|||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
lookupTracker: LookupTracker,
|
lookupTracker: LookupTracker,
|
||||||
expectActualTracker: ExpectActualTracker,
|
expectActualTracker: ExpectActualTracker,
|
||||||
|
inlineConstTracker: InlineConstTracker,
|
||||||
packagePartProvider: PackagePartProvider,
|
packagePartProvider: PackagePartProvider,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
useBuiltInsProvider: Boolean,
|
useBuiltInsProvider: Boolean,
|
||||||
@@ -74,7 +76,7 @@ fun createContainerForLazyResolveWithJava(
|
|||||||
sealedInheritorsProvider
|
sealedInheritorsProvider
|
||||||
)
|
)
|
||||||
|
|
||||||
configureIncrementalCompilation(lookupTracker, expectActualTracker)
|
configureIncrementalCompilation(lookupTracker, expectActualTracker, inlineConstTracker)
|
||||||
configureStandardResolveComponents()
|
configureStandardResolveComponents()
|
||||||
|
|
||||||
useInstance(moduleContentScope)
|
useInstance(moduleContentScope)
|
||||||
|
|||||||
+2
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.frontend.java.di.createContainerForLazyResolveWithJava
|
import org.jetbrains.kotlin.frontend.java.di.createContainerForLazyResolveWithJava
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolverImpl
|
import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolverImpl
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
||||||
@@ -112,6 +113,7 @@ class JvmResolverForModuleFactory(
|
|||||||
targetEnvironment,
|
targetEnvironment,
|
||||||
lookupTracker,
|
lookupTracker,
|
||||||
ExpectActualTracker.DoNothing,
|
ExpectActualTracker.DoNothing,
|
||||||
|
InlineConstTracker.DoNothing,
|
||||||
packagePartProvider,
|
packagePartProvider,
|
||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
sealedInheritorsProvider = sealedInheritorsProvider,
|
sealedInheritorsProvider = sealedInheritorsProvider,
|
||||||
|
|||||||
+2
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.frontend.di.configureModule
|
import org.jetbrains.kotlin.frontend.di.configureModule
|
||||||
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
||||||
|
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||||
import org.jetbrains.kotlin.load.kotlin.MetadataFinderFactory
|
import org.jetbrains.kotlin.load.kotlin.MetadataFinderFactory
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
@@ -244,6 +245,7 @@ private fun createContainerToResolveCommonCode(
|
|||||||
if (shouldCheckExpectActual) {
|
if (shouldCheckExpectActual) {
|
||||||
useImpl<ExpectedActualDeclarationChecker>()
|
useImpl<ExpectedActualDeclarationChecker>()
|
||||||
}
|
}
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun StorageComponentContainer.configureCommonSpecificComponents() {
|
fun StorageComponentContainer.configureCommonSpecificComponents() {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.contracts.ContractDeserializerImpl
|
|||||||
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
||||||
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatformVersion
|
import org.jetbrains.kotlin.platform.TargetPlatformVersion
|
||||||
@@ -126,9 +127,10 @@ fun StorageComponentContainer.configureStandardResolveComponents() {
|
|||||||
useImpl<AnnotationResolverImpl>()
|
useImpl<AnnotationResolverImpl>()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun StorageComponentContainer.configureIncrementalCompilation(lookupTracker: LookupTracker, expectActualTracker: ExpectActualTracker) {
|
fun StorageComponentContainer.configureIncrementalCompilation(lookupTracker: LookupTracker, expectActualTracker: ExpectActualTracker, inlineConstTracker: InlineConstTracker) {
|
||||||
useInstance(lookupTracker)
|
useInstance(lookupTracker)
|
||||||
useInstance(expectActualTracker)
|
useInstance(expectActualTracker)
|
||||||
|
useInstance(inlineConstTracker)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createContainerForBodyResolve(
|
fun createContainerForBodyResolve(
|
||||||
@@ -152,6 +154,7 @@ fun createContainerForBodyResolve(
|
|||||||
useImpl<BodyResolver>()
|
useImpl<BodyResolver>()
|
||||||
useInstance(moduleStructureOracle)
|
useInstance(moduleStructureOracle)
|
||||||
useInstance(controlFlowInformationProviderFactory)
|
useInstance(controlFlowInformationProviderFactory)
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createContainerForLazyBodyResolve(
|
fun createContainerForLazyBodyResolve(
|
||||||
@@ -177,6 +180,7 @@ fun createContainerForLazyBodyResolve(
|
|||||||
useImpl<BasicAbsentDescriptorHandler>()
|
useImpl<BasicAbsentDescriptorHandler>()
|
||||||
useInstance(moduleStructureOracle)
|
useInstance(moduleStructureOracle)
|
||||||
useInstance(controlFlowInformationProviderFactory)
|
useInstance(controlFlowInformationProviderFactory)
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
|
|
||||||
// All containers except common inject ExpectedActualDeclarationChecker, so for common we do that
|
// All containers except common inject ExpectedActualDeclarationChecker, so for common we do that
|
||||||
// explicitly.
|
// explicitly.
|
||||||
@@ -201,6 +205,7 @@ fun createContainerForLazyLocalClassifierAnalyzer(
|
|||||||
useInstance(localClassDescriptorHolder)
|
useInstance(localClassDescriptorHolder)
|
||||||
useInstance(lookupTracker)
|
useInstance(lookupTracker)
|
||||||
useInstance(ExpectActualTracker.DoNothing)
|
useInstance(ExpectActualTracker.DoNothing)
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
|
|
||||||
useImpl<LazyTopDownAnalyzer>()
|
useImpl<LazyTopDownAnalyzer>()
|
||||||
|
|
||||||
@@ -233,6 +238,7 @@ fun createContainerForLazyResolve(
|
|||||||
configureStandardResolveComponents()
|
configureStandardResolveComponents()
|
||||||
|
|
||||||
useInstance(declarationProviderFactory)
|
useInstance(declarationProviderFactory)
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
|
|
||||||
|
|
||||||
targetEnvironment.configure(this)
|
targetEnvironment.configure(this)
|
||||||
|
|||||||
+35
-1
@@ -21,7 +21,10 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1
|
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
|
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
|
||||||
|
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
import org.jetbrains.kotlin.resolve.descriptorUtil.isCompanionObject
|
||||||
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.parsing.*
|
import org.jetbrains.kotlin.parsing.*
|
||||||
@@ -55,7 +58,8 @@ import java.util.*
|
|||||||
class ConstantExpressionEvaluator(
|
class ConstantExpressionEvaluator(
|
||||||
internal val module: ModuleDescriptor,
|
internal val module: ModuleDescriptor,
|
||||||
internal val languageVersionSettings: LanguageVersionSettings,
|
internal val languageVersionSettings: LanguageVersionSettings,
|
||||||
project: Project
|
project: Project,
|
||||||
|
internal val inlineConstTracker: InlineConstTracker = InlineConstTracker.DoNothing
|
||||||
) {
|
) {
|
||||||
private val moduleAnnotationsResolver = ModuleAnnotationsResolver.getInstance(project)
|
private val moduleAnnotationsResolver = ModuleAnnotationsResolver.getInstance(project)
|
||||||
|
|
||||||
@@ -382,6 +386,11 @@ private class ConstantExpressionEvaluatorVisitor(
|
|||||||
private val builtIns = constantExpressionEvaluator.module.builtIns
|
private val builtIns = constantExpressionEvaluator.module.builtIns
|
||||||
private val defaultValueForDontCreateIntegerLiteralType =
|
private val defaultValueForDontCreateIntegerLiteralType =
|
||||||
languageVersionSettings.supportsFeature(ApproximateIntegerLiteralTypesInReceiverPosition)
|
languageVersionSettings.supportsFeature(ApproximateIntegerLiteralTypesInReceiverPosition)
|
||||||
|
private val inlineConstTracker =
|
||||||
|
if (constantExpressionEvaluator.inlineConstTracker is InlineConstTracker.DoNothing)
|
||||||
|
null
|
||||||
|
else
|
||||||
|
constantExpressionEvaluator.inlineConstTracker
|
||||||
|
|
||||||
fun evaluate(expression: KtExpression, expectedType: KotlinType?): CompileTimeConstant<*>? {
|
fun evaluate(expression: KtExpression, expectedType: KotlinType?): CompileTimeConstant<*>? {
|
||||||
val recordedCompileTimeConstant = ConstantExpressionEvaluator.getPossiblyErrorConstant(expression, trace.bindingContext)
|
val recordedCompileTimeConstant = ConstantExpressionEvaluator.getPossiblyErrorConstant(expression, trace.bindingContext)
|
||||||
@@ -798,6 +807,14 @@ private class ConstantExpressionEvaluatorVisitor(
|
|||||||
return EnumValue(enumClassId, enumDescriptor.name).wrap()
|
return EnumValue(enumClassId, enumDescriptor.name).wrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val variableDescriptor = enumDescriptor as? VariableDescriptor
|
||||||
|
if (variableDescriptor != null
|
||||||
|
&& isPropertyCompileTimeConstant(variableDescriptor)
|
||||||
|
&& !variableDescriptor.containingDeclaration.isCompanionObject()
|
||||||
|
) {
|
||||||
|
reportInlineConst(expression, variableDescriptor)
|
||||||
|
}
|
||||||
|
|
||||||
val resolvedCall = expression.getResolvedCall(trace.bindingContext)
|
val resolvedCall = expression.getResolvedCall(trace.bindingContext)
|
||||||
if (resolvedCall != null) {
|
if (resolvedCall != null) {
|
||||||
val callableDescriptor = resolvedCall.resultingDescriptor
|
val callableDescriptor = resolvedCall.resultingDescriptor
|
||||||
@@ -827,6 +844,23 @@ private class ConstantExpressionEvaluatorVisitor(
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun reportInlineConst(expression: KtSimpleNameExpression, variableDescriptor: VariableDescriptor) {
|
||||||
|
if (inlineConstTracker == null) return
|
||||||
|
val filePath = expression.containingFile.virtualFile?.path ?: return
|
||||||
|
val name = expression.getReferencedName()
|
||||||
|
val constType = variableDescriptor.type.toString()
|
||||||
|
|
||||||
|
// Transformation of fqName to the form "package.Outer$Inner"
|
||||||
|
val containingPackage = variableDescriptor.containingPackage()?.toString() ?: return
|
||||||
|
val fqName = variableDescriptor.containingDeclaration.fqNameSafe.asString()
|
||||||
|
val owner = if (fqName.startsWith("$containingPackage.")) {
|
||||||
|
containingPackage + "." + fqName.substring(containingPackage.length + 1).replace(".", "$")
|
||||||
|
} else {
|
||||||
|
fqName.replace(".", "$")
|
||||||
|
}
|
||||||
|
inlineConstTracker.report(filePath, owner, name, constType)
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Should be replaced with descriptor.isConst
|
// TODO: Should be replaced with descriptor.isConst
|
||||||
private fun isPropertyCompileTimeConstant(descriptor: VariableDescriptor): Boolean {
|
private fun isPropertyCompileTimeConstant(descriptor: VariableDescriptor): Boolean {
|
||||||
if (descriptor.isVar) {
|
if (descriptor.isVar) {
|
||||||
|
|||||||
+18
@@ -1295,6 +1295,11 @@ public class IncrementalFirJvmCompilerRunnerTestGenerated extends AbstractIncrem
|
|||||||
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("constantPropertyChanged")
|
||||||
|
public void testConstantPropertyChanged() throws Exception {
|
||||||
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged/");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("constantUnchanged")
|
@TestMetadata("constantUnchanged")
|
||||||
public void testConstantUnchanged() throws Exception {
|
public void testConstantUnchanged() throws Exception {
|
||||||
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
|
||||||
@@ -1459,6 +1464,19 @@ public class IncrementalFirJvmCompilerRunnerTestGenerated extends AbstractIncrem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class ConstantPropertyChanged extends AbstractIncrementalFirJvmCompilerRunnerTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInConstantPropertyChanged() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged")
|
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
+18
@@ -1295,6 +1295,11 @@ public class IncrementalJvmCompilerRunnerTestGenerated extends AbstractIncrement
|
|||||||
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("constantPropertyChanged")
|
||||||
|
public void testConstantPropertyChanged() throws Exception {
|
||||||
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged/");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("constantUnchanged")
|
@TestMetadata("constantUnchanged")
|
||||||
public void testConstantUnchanged() throws Exception {
|
public void testConstantUnchanged() throws Exception {
|
||||||
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
|
||||||
@@ -1459,6 +1464,19 @@ public class IncrementalJvmCompilerRunnerTestGenerated extends AbstractIncrement
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class ConstantPropertyChanged extends AbstractIncrementalJvmCompilerRunnerTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInConstantPropertyChanged() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged")
|
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
+18
@@ -1295,6 +1295,11 @@ public class IncrementalJvmOldBackendCompilerRunnerTestGenerated extends Abstrac
|
|||||||
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantChanged/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("constantPropertyChanged")
|
||||||
|
public void testConstantPropertyChanged() throws Exception {
|
||||||
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged/");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("constantUnchanged")
|
@TestMetadata("constantUnchanged")
|
||||||
public void testConstantUnchanged() throws Exception {
|
public void testConstantUnchanged() throws Exception {
|
||||||
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
|
runTest("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged/");
|
||||||
@@ -1459,6 +1464,19 @@ public class IncrementalJvmOldBackendCompilerRunnerTestGenerated extends Abstrac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class ConstantPropertyChanged extends AbstractIncrementalJvmOldBackendCompilerRunnerTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInConstantPropertyChanged() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged")
|
@TestMetadata("jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantUnchanged")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
+2
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.frontend.java.di.createContainerForLazyResolveWithJava
|
import org.jetbrains.kotlin.frontend.java.di.createContainerForLazyResolveWithJava
|
||||||
import org.jetbrains.kotlin.frontend.java.di.initJvmBuiltInsForTopDownAnalysis
|
import org.jetbrains.kotlin.frontend.java.di.initJvmBuiltInsForTopDownAnalysis
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
||||||
import org.jetbrains.kotlin.js.config.JsConfig
|
import org.jetbrains.kotlin.js.config.JsConfig
|
||||||
@@ -212,6 +213,7 @@ class ClassicFrontendFacade(
|
|||||||
moduleClassResolver,
|
moduleClassResolver,
|
||||||
CompilerEnvironment, LookupTracker.DO_NOTHING,
|
CompilerEnvironment, LookupTracker.DO_NOTHING,
|
||||||
ExpectActualTracker.DoNothing,
|
ExpectActualTracker.DoNothing,
|
||||||
|
InlineConstTracker.DoNothing,
|
||||||
packagePartProviderFactory(moduleContentScope),
|
packagePartProviderFactory(moduleContentScope),
|
||||||
module.languageVersionSettings,
|
module.languageVersionSettings,
|
||||||
useBuiltInsProvider = true
|
useBuiltInsProvider = true
|
||||||
|
|||||||
+3
-2
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.diagnostics.Errors.*
|
|||||||
import org.jetbrains.kotlin.frontend.java.di.createContainerForLazyResolveWithJava
|
import org.jetbrains.kotlin.frontend.java.di.createContainerForLazyResolveWithJava
|
||||||
import org.jetbrains.kotlin.frontend.java.di.initJvmBuiltInsForTopDownAnalysis
|
import org.jetbrains.kotlin.frontend.java.di.initJvmBuiltInsForTopDownAnalysis
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver
|
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -422,8 +423,8 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
FileBasedDeclarationProviderFactory(moduleContext.storageManager, files),
|
FileBasedDeclarationProviderFactory(moduleContext.storageManager, files),
|
||||||
moduleContentScope,
|
moduleContentScope,
|
||||||
moduleClassResolver,
|
moduleClassResolver,
|
||||||
CompilerEnvironment, LookupTracker.DO_NOTHING,
|
CompilerEnvironment,
|
||||||
ExpectActualTracker.DoNothing,
|
LookupTracker.DO_NOTHING, ExpectActualTracker.DoNothing, InlineConstTracker.DoNothing,
|
||||||
environment.createPackagePartProvider(moduleContentScope),
|
environment.createPackagePartProvider(moduleContentScope),
|
||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
useBuiltInsProvider = true
|
useBuiltInsProvider = true
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
||||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices
|
import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices
|
||||||
import org.jetbrains.kotlin.types.expressions.FakeCallResolver
|
import org.jetbrains.kotlin.types.expressions.FakeCallResolver
|
||||||
|
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||||
|
|
||||||
fun createContainerForTests(project: Project, module: ModuleDescriptor): ContainerForTests {
|
fun createContainerForTests(project: Project, module: ModuleDescriptor): ContainerForTests {
|
||||||
return ContainerForTests(createContainer("Tests", JvmPlatformAnalyzerServices) {
|
return ContainerForTests(createContainer("Tests", JvmPlatformAnalyzerServices) {
|
||||||
@@ -45,6 +46,7 @@ fun createContainerForTests(project: Project, module: ModuleDescriptor): Contain
|
|||||||
useImpl<AnnotationResolverImpl>()
|
useImpl<AnnotationResolverImpl>()
|
||||||
useInstance(ModuleStructureOracle.SingleModule)
|
useInstance(ModuleStructureOracle.SingleModule)
|
||||||
useInstance(ControlFlowInformationProviderImpl.Factory)
|
useInstance(ControlFlowInformationProviderImpl.Factory)
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.context.ModuleContext
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.frontend.di.configureModule
|
import org.jetbrains.kotlin.frontend.di.configureModule
|
||||||
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
||||||
|
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||||
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.*
|
import org.jetbrains.kotlin.resolve.*
|
||||||
@@ -57,6 +58,7 @@ private fun createFakeTopDownAnalyzerForNative(
|
|||||||
configureStandardResolveComponents()
|
configureStandardResolveComponents()
|
||||||
|
|
||||||
useInstance(declarationProviderFactory)
|
useInstance(declarationProviderFactory)
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
CompilerEnvironment.configure(this)
|
CompilerEnvironment.configure(this)
|
||||||
}.apply {
|
}.apply {
|
||||||
val moduleDescriptor = get<ModuleDescriptorImpl>()
|
val moduleDescriptor = get<ModuleDescriptorImpl>()
|
||||||
|
|||||||
+6
-2
@@ -1,3 +1,7 @@
|
|||||||
public class JavaClass {
|
public class JavaClass {
|
||||||
public static final String CONST = "A";
|
public class Inner {
|
||||||
}
|
public class InnerInner {
|
||||||
|
public static final String CONST = "A";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+6
-2
@@ -1,3 +1,7 @@
|
|||||||
public class JavaClass {
|
public class JavaClass {
|
||||||
public static final String CONST = "B";
|
public class Inner {
|
||||||
}
|
public class InnerInner {
|
||||||
|
public static final String CONST = "B";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-1
@@ -1,6 +1,8 @@
|
|||||||
================ Step #1 =================
|
================ Step #1 =================
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
|
out/production/module/JavaClass$Inner$InnerInner.class
|
||||||
|
out/production/module/JavaClass$Inner.class
|
||||||
out/production/module/JavaClass.class
|
out/production/module/JavaClass.class
|
||||||
End of files
|
End of files
|
||||||
Exit code: NOTHING_DONE
|
Exit code: NOTHING_DONE
|
||||||
@@ -10,7 +12,7 @@ Compiling files:
|
|||||||
End of files
|
End of files
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module/META-INF/module.kotlin_module
|
||||||
out/production/module/Usage.class
|
out/production/module/UsageKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/usage.kt
|
src/usage.kt
|
||||||
|
|||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
fun dummy() {}
|
||||||
+5
-2
@@ -1,2 +1,5 @@
|
|||||||
@Deprecated(JavaClass.CONST + JavaClass.CONST)
|
import JavaClass.Inner.InnerInner.CONST
|
||||||
class Usage
|
|
||||||
|
fun main() {
|
||||||
|
val myKotlinConst = CONST
|
||||||
|
}
|
||||||
Vendored
+7
@@ -0,0 +1,7 @@
|
|||||||
|
public class JavaClass {
|
||||||
|
public class Inner {
|
||||||
|
public class InnerInner {
|
||||||
|
public static final String CONST = "A";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
jps-plugin/testData/incremental/withJava/javaUsedInKotlin/constantPropertyChanged/JavaClass.java.new
Vendored
+7
@@ -0,0 +1,7 @@
|
|||||||
|
public class JavaClass {
|
||||||
|
public class Inner {
|
||||||
|
public class InnerInner {
|
||||||
|
public static final String CONST = "B";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import JavaClass.Inner.InnerInner.CONST
|
||||||
|
|
||||||
|
class KotlinUsageClass {
|
||||||
|
val myKotlinConst = CONST
|
||||||
|
}
|
||||||
Vendored
+21
@@ -0,0 +1,21 @@
|
|||||||
|
================ Step #1 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/JavaClass$Inner$InnerInner.class
|
||||||
|
out/production/module/JavaClass$Inner.class
|
||||||
|
out/production/module/JavaClass.class
|
||||||
|
End of files
|
||||||
|
Exit code: NOTHING_DONE
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/JavaClass.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/KotlinUsageClass.class
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/KotlinUsageClass.kt
|
||||||
|
End of files
|
||||||
|
Exit code: OK
|
||||||
|
------------------------------------------
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
fun dummy() {}
|
||||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.frontend.di.configureIncrementalCompilation
|
|||||||
import org.jetbrains.kotlin.frontend.di.configureModule
|
import org.jetbrains.kotlin.frontend.di.configureModule
|
||||||
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
||||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||||
@@ -45,6 +46,7 @@ fun createContainerForJS(
|
|||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
lookupTracker: LookupTracker,
|
lookupTracker: LookupTracker,
|
||||||
expectActualTracker: ExpectActualTracker,
|
expectActualTracker: ExpectActualTracker,
|
||||||
|
inlineConstTracker: InlineConstTracker,
|
||||||
additionalPackages: List<PackageFragmentProvider>,
|
additionalPackages: List<PackageFragmentProvider>,
|
||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
): StorageComponentContainer {
|
): StorageComponentContainer {
|
||||||
@@ -57,7 +59,7 @@ fun createContainerForJS(
|
|||||||
languageVersionSettings
|
languageVersionSettings
|
||||||
)
|
)
|
||||||
|
|
||||||
configureIncrementalCompilation(lookupTracker, expectActualTracker)
|
configureIncrementalCompilation(lookupTracker, expectActualTracker, inlineConstTracker)
|
||||||
configureStandardResolveComponents()
|
configureStandardResolveComponents()
|
||||||
|
|
||||||
useInstance(declarationProviderFactory)
|
useInstance(declarationProviderFactory)
|
||||||
@@ -80,11 +82,12 @@ fun createTopDownAnalyzerForJs(
|
|||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
lookupTracker: LookupTracker,
|
lookupTracker: LookupTracker,
|
||||||
expectActualTracker: ExpectActualTracker,
|
expectActualTracker: ExpectActualTracker,
|
||||||
|
inlineConstTracker: InlineConstTracker,
|
||||||
additionalPackages: List<PackageFragmentProvider>,
|
additionalPackages: List<PackageFragmentProvider>,
|
||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
): LazyTopDownAnalyzer {
|
): LazyTopDownAnalyzer {
|
||||||
return createContainerForJS(
|
return createContainerForJS(
|
||||||
moduleContext, bindingTrace, declarationProviderFactory, languageVersionSettings,
|
moduleContext, bindingTrace, declarationProviderFactory, languageVersionSettings,
|
||||||
lookupTracker, expectActualTracker, additionalPackages, targetEnvironment
|
lookupTracker, expectActualTracker, inlineConstTracker, additionalPackages, targetEnvironment
|
||||||
).get<LazyTopDownAnalyzer>()
|
).get<LazyTopDownAnalyzer>()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.frontend.js.di.createContainerForJS
|
import org.jetbrains.kotlin.frontend.js.di.createContainerForJS
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
|
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
|
||||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||||
@@ -105,6 +106,7 @@ abstract class AbstractTopDownAnalyzerFacadeForJS {
|
|||||||
): JsAnalysisResult {
|
): JsAnalysisResult {
|
||||||
val lookupTracker = configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING
|
val lookupTracker = configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING
|
||||||
val expectActualTracker = configuration.get(CommonConfigurationKeys.EXPECT_ACTUAL_TRACKER) ?: ExpectActualTracker.DoNothing
|
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 languageVersionSettings = configuration.languageVersionSettings
|
||||||
val packageFragment = configuration[JSConfigurationKeys.INCREMENTAL_DATA_PROVIDER]?.let {
|
val packageFragment = configuration[JSConfigurationKeys.INCREMENTAL_DATA_PROVIDER]?.let {
|
||||||
loadIncrementalCacheMetadata(it, moduleContext, lookupTracker, languageVersionSettings)
|
loadIncrementalCacheMetadata(it, moduleContext, lookupTracker, languageVersionSettings)
|
||||||
@@ -116,6 +118,7 @@ abstract class AbstractTopDownAnalyzerFacadeForJS {
|
|||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
lookupTracker,
|
lookupTracker,
|
||||||
expectActualTracker,
|
expectActualTracker,
|
||||||
|
inlineConstTracker,
|
||||||
additionalPackages + listOfNotNull(packageFragment),
|
additionalPackages + listOfNotNull(packageFragment),
|
||||||
targetEnvironment,
|
targetEnvironment,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.context.ModuleContext
|
|||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
|
import org.jetbrains.kotlin.incremental.components.InlineConstTracker
|
||||||
import org.jetbrains.kotlin.frontend.di.configureModule
|
import org.jetbrains.kotlin.frontend.di.configureModule
|
||||||
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
||||||
import org.jetbrains.kotlin.resolve.*
|
import org.jetbrains.kotlin.resolve.*
|
||||||
@@ -37,6 +38,7 @@ fun createTopDownAnalyzerProviderForKonan(
|
|||||||
|
|
||||||
useImpl<ResolveSession>()
|
useImpl<ResolveSession>()
|
||||||
useImpl<LazyTopDownAnalyzer>()
|
useImpl<LazyTopDownAnalyzer>()
|
||||||
|
useInstance(InlineConstTracker.DoNothing)
|
||||||
|
|
||||||
initContainer()
|
initContainer()
|
||||||
}.apply {
|
}.apply {
|
||||||
|
|||||||
+3
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.diagnostics.Severity
|
import org.jetbrains.kotlin.diagnostics.Severity
|
||||||
import org.jetbrains.kotlin.frontend.js.di.createTopDownAnalyzerForJs
|
import org.jetbrains.kotlin.frontend.js.di.createTopDownAnalyzerForJs
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
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.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -54,6 +55,7 @@ abstract class AbstractJsScriptlikeCodeAnalyser(
|
|||||||
val languageVersionSettings = environment.configuration.languageVersionSettings
|
val languageVersionSettings = environment.configuration.languageVersionSettings
|
||||||
val lookupTracker = LookupTracker.DO_NOTHING
|
val lookupTracker = LookupTracker.DO_NOTHING
|
||||||
val expectActualTracker = ExpectActualTracker.DoNothing
|
val expectActualTracker = ExpectActualTracker.DoNothing
|
||||||
|
val inlineConstTracker = InlineConstTracker.DoNothing
|
||||||
val additionalPackages = emptyList<PackageFragmentProvider>()
|
val additionalPackages = emptyList<PackageFragmentProvider>()
|
||||||
val moduleDescriptor = moduleContext.module
|
val moduleDescriptor = moduleContext.module
|
||||||
|
|
||||||
@@ -65,6 +67,7 @@ abstract class AbstractJsScriptlikeCodeAnalyser(
|
|||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
lookupTracker,
|
lookupTracker,
|
||||||
expectActualTracker,
|
expectActualTracker,
|
||||||
|
inlineConstTracker,
|
||||||
additionalPackages,
|
additionalPackages,
|
||||||
CompilerEnvironment,
|
CompilerEnvironment,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user