Prettify TopDownAnalyzerFacadeFor{JVM,JS}
This commit is contained in:
@@ -17,14 +17,11 @@
|
||||
package org.jetbrains.kotlin.js.analyze
|
||||
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||
import org.jetbrains.kotlin.context.*
|
||||
import org.jetbrains.kotlin.context.ContextForNewModule
|
||||
import org.jetbrains.kotlin.context.ModuleContext
|
||||
import org.jetbrains.kotlin.context.MutableModuleContext
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.frontend.js.di.*
|
||||
import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.frontend.js.di.createTopDownAnalyzerForJs
|
||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||
import org.jetbrains.kotlin.js.config.JsConfig
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
||||
@@ -32,32 +29,18 @@ import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.*
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.serialization.js.JsModuleDescriptor
|
||||
|
||||
import java.util.ArrayList
|
||||
import java.util.Collections
|
||||
|
||||
object TopDownAnalyzerFacadeForJS {
|
||||
@JvmStatic
|
||||
fun analyzeFiles(files: Collection<KtFile>, config: JsConfig): JsAnalysisResult {
|
||||
val trace = BindingTraceContext()
|
||||
|
||||
val newModuleContext = ContextForNewModule(
|
||||
ProjectContext(config.project), Name.special("<" + config.moduleId + ">"), JsPlatform,
|
||||
JsPlatform.builtIns
|
||||
val context =
|
||||
ContextForNewModule(ProjectContext(config.project), Name.special("<${config.moduleId}>"), JsPlatform, JsPlatform.builtIns)
|
||||
context.setDependencies(
|
||||
listOf(context.module) +
|
||||
config.moduleDescriptors.map { it.data } +
|
||||
listOf(JsPlatform.builtIns.builtInsModule)
|
||||
)
|
||||
newModuleContext.setDependencies(computeDependencies(newModuleContext.module, config))
|
||||
return analyzeFilesWithGivenTrace(files, trace, newModuleContext, config)
|
||||
}
|
||||
|
||||
private fun computeDependencies(module: ModuleDescriptorImpl, config: JsConfig): List<ModuleDescriptorImpl> {
|
||||
val allDependencies = ArrayList<ModuleDescriptorImpl>()
|
||||
allDependencies.add(module)
|
||||
for (descriptor in config.moduleDescriptors) {
|
||||
allDependencies.add(descriptor.data)
|
||||
}
|
||||
allDependencies.add(JsPlatform.builtIns.builtInsModule)
|
||||
return allDependencies
|
||||
return analyzeFilesWithGivenTrace(files, BindingTraceContext(), context, config)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
@@ -68,13 +51,12 @@ object TopDownAnalyzerFacadeForJS {
|
||||
config: JsConfig
|
||||
): JsAnalysisResult {
|
||||
val allFiles = JsConfig.withJsLibAdded(files, config)
|
||||
|
||||
val analyzerForJs = createTopDownAnalyzerForJs(
|
||||
moduleContext, trace,
|
||||
FileBasedDeclarationProviderFactory(moduleContext.storageManager, allFiles),
|
||||
config.configuration.get<LanguageVersionSettings>(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
|
||||
config.configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
|
||||
)
|
||||
analyzerForJs.analyzeFiles(TopDownAnalysisMode.TopLevelDeclarations, files, emptyList<PackageFragmentProvider>())
|
||||
analyzerForJs.analyzeFiles(TopDownAnalysisMode.TopLevelDeclarations, files, emptyList())
|
||||
return JsAnalysisResult.success(trace, moduleContext.module)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user