Pass LanguageSettingsProvider to AnalyzerFacade explicitly

This way is more flexible for example for tests, where configuring the
service implementation may be tricky (it's usually done in
KotlinCoreEnvironment in production code)
This commit is contained in:
Alexander Udalov
2017-04-21 22:02:50 +03:00
parent ca06d38c5b
commit 4e77897bfd
10 changed files with 27 additions and 24 deletions
@@ -46,6 +46,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
platformParameters: PlatformAnalysisParameters,
targetEnvironment: TargetEnvironment,
resolverForProject: ResolverForProject<M>,
languageSettingsProvider: LanguageSettingsProvider,
packagePartProvider: PackagePartProvider
): ResolverForModule {
val (syntheticFiles, moduleContentScope) = moduleContent
@@ -58,8 +59,6 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
moduleInfo
)
val languageVersionSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project)
val container = createContainerForLazyResolve(
moduleContext,
declarationProviderFactory,
@@ -67,7 +66,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
JsPlatform,
TargetPlatformVersion.NoVersion,
targetEnvironment,
languageVersionSettings
languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
)
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider