[Injection] Minor: inline createContainerForTopDownAnalyzerForJvm

Essentially, this function was used solely for setting
'useBuiltInsProvider' to 'true'; otherwise it were just delegating to
createContainerForLazyResolveWithJava, which were just increasing the
noise.
This commit is contained in:
Dmitry Savvinov
2019-03-13 10:03:55 +03:00
parent 70be224f0f
commit b81b388b33
3 changed files with 21 additions and 39 deletions
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
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.frontend.java.di.createContainerForTopDownAnalyzerForJvm 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.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
@@ -167,11 +167,13 @@ object TopDownAnalyzerFacadeForJVM {
// Scope for the dependency module contains everything except files present in the scope for the source module // Scope for the dependency module contains everything except files present in the scope for the source module
val dependencyScope = GlobalSearchScope.notScope(sourceScope) val dependencyScope = GlobalSearchScope.notScope(sourceScope)
val dependenciesContainer = createContainerForTopDownAnalyzerForJvm( val dependenciesContainer = createContainerForLazyResolveWithJava(
JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget), // TODO(dsavvinov): do not pass JvmTarget around JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget),
dependenciesContext, trace, DeclarationProviderFactory.EMPTY, dependencyScope, lookupTracker, expectActualTracker, dependenciesContext, trace, DeclarationProviderFactory.EMPTY, dependencyScope, moduleClassResolver,
packagePartProvider(dependencyScope), moduleClassResolver, targetEnvironment, languageVersionSettings, targetEnvironment, lookupTracker, expectActualTracker,
configureJavaClassFinder packagePartProvider(dependencyScope), languageVersionSettings,
useBuiltInsProvider = true,
configureJavaClassFinder = configureJavaClassFinder
) )
moduleClassResolver.compiledCodeResolver = dependenciesContainer.get() moduleClassResolver.compiledCodeResolver = dependenciesContainer.get()
@@ -197,11 +199,14 @@ object TopDownAnalyzerFacadeForJVM {
// CliLightClassGenerationSupport#initialize is invoked when container is created, so only the last module descriptor is going // CliLightClassGenerationSupport#initialize is invoked when container is created, so only the last module descriptor is going
// to be stored in CliLightClassGenerationSupport, and it better be the source one (otherwise light classes would not be found) // to be stored in CliLightClassGenerationSupport, and it better be the source one (otherwise light classes would not be found)
// TODO: get rid of duplicate invocation of CodeAnalyzerInitializer#initialize, or refactor CliLightClassGenerationSupport // TODO: get rid of duplicate invocation of CodeAnalyzerInitializer#initialize, or refactor CliLightClassGenerationSupport
val container = createContainerForTopDownAnalyzerForJvm( val container = createContainerForLazyResolveWithJava(
JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget), JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget),
moduleContext, trace, declarationProviderFactory(storageManager, files), sourceScope, lookupTracker, expectActualTracker, moduleContext, trace, declarationProviderFactory(storageManager, files), sourceScope, moduleClassResolver,
partProvider, moduleClassResolver, targetEnvironment, languageVersionSettings, configureJavaClassFinder, targetEnvironment, lookupTracker, expectActualTracker,
configuration[JVMConfigurationKeys.JAVA_CLASSES_TRACKER] partProvider, languageVersionSettings,
useBuiltInsProvider = true,
configureJavaClassFinder = configureJavaClassFinder,
javaClassTracker = configuration[JVMConfigurationKeys.JAVA_CLASSES_TRACKER]
).apply { ).apply {
initJvmBuiltInsForTopDownAnalysis() initJvmBuiltInsForTopDownAnalysis()
(partProvider as? IncrementalPackagePartProvider)?.deserializationConfiguration = get() (partProvider as? IncrementalPackagePartProvider)?.deserializationConfiguration = get()
@@ -118,29 +118,6 @@ fun createContainerForLazyResolveWithJava(
} }
fun createContainerForTopDownAnalyzerForJvm(
jvmPlatform: TargetPlatform,
moduleContext: ModuleContext,
bindingTrace: BindingTrace,
declarationProviderFactory: DeclarationProviderFactory,
moduleContentScope: GlobalSearchScope,
lookupTracker: LookupTracker,
expectActualTracker: ExpectActualTracker,
packagePartProvider: PackagePartProvider,
moduleClassResolver: ModuleClassResolver,
targetEnvironment: TargetEnvironment,
languageVersionSettings: LanguageVersionSettings,
configureJavaClassFinder: (StorageComponentContainer.() -> Unit)? = null,
javaClassTracker: JavaClassesTracker? = null
): ComponentProvider = createContainerForLazyResolveWithJava(
jvmPlatform, moduleContext, bindingTrace, declarationProviderFactory, moduleContentScope, moduleClassResolver,
targetEnvironment, lookupTracker, expectActualTracker, packagePartProvider, languageVersionSettings,
useBuiltInsProvider = true,
configureJavaClassFinder = configureJavaClassFinder,
javaClassTracker = javaClassTracker
)
fun ComponentProvider.initJvmBuiltInsForTopDownAnalysis() { fun ComponentProvider.initJvmBuiltInsForTopDownAnalysis() {
get<JvmBuiltIns>().initialize(get<ModuleDescriptor>(), get<LanguageVersionSettings>()) get<JvmBuiltIns>().initialize(get<ModuleDescriptor>(), get<LanguageVersionSettings>())
} }
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
import org.jetbrains.kotlin.diagnostics.DiagnosticUtils import org.jetbrains.kotlin.diagnostics.DiagnosticUtils
import org.jetbrains.kotlin.diagnostics.Errors.* import org.jetbrains.kotlin.diagnostics.Errors.*
import org.jetbrains.kotlin.frontend.java.di.createContainerForTopDownAnalyzerForJvm 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.LookupTracker import org.jetbrains.kotlin.incremental.components.LookupTracker
@@ -380,18 +380,18 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
val moduleContentScope = GlobalSearchScope.allScope(moduleContext.project) val moduleContentScope = GlobalSearchScope.allScope(moduleContext.project)
val moduleClassResolver = SingleModuleClassResolver() val moduleClassResolver = SingleModuleClassResolver()
val container = createContainerForTopDownAnalyzerForJvm( val container = createContainerForLazyResolveWithJava(
JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget), // TODO(dsavvinov): do not pass JvmTarget around JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget), // TODO(dsavvinov): do not pass JvmTarget around
moduleContext, moduleContext,
moduleTrace, moduleTrace,
FileBasedDeclarationProviderFactory(moduleContext.storageManager, files), FileBasedDeclarationProviderFactory(moduleContext.storageManager, files),
moduleContentScope, moduleContentScope,
LookupTracker.DO_NOTHING, moduleClassResolver,
CompilerEnvironment, LookupTracker.DO_NOTHING,
ExpectActualTracker.DoNothing, ExpectActualTracker.DoNothing,
environment.createPackagePartProvider(moduleContentScope), environment.createPackagePartProvider(moduleContentScope),
moduleClassResolver, languageVersionSettings,
CompilerEnvironment, useBuiltInsProvider = true
languageVersionSettings
) )
container.initJvmBuiltInsForTopDownAnalysis() container.initJvmBuiltInsForTopDownAnalysis()