Use lookup tracker in JS compiler

This commit is contained in:
Alexey Tsvetkov
2017-06-21 16:53:48 +03:00
parent f3f7ca4b95
commit e2190ea956
3 changed files with 11 additions and 1 deletions
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys;
import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.config.ContentRootsKt; import org.jetbrains.kotlin.config.ContentRootsKt;
import org.jetbrains.kotlin.config.Services; import org.jetbrains.kotlin.config.Services;
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.analyzer.JsAnalysisResult; import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult;
import org.jetbrains.kotlin.js.config.EcmaVersion; import org.jetbrains.kotlin.js.config.EcmaVersion;
@@ -381,6 +382,11 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
configuration.put(JSConfigurationKeys.INCREMENTAL_RESULTS_CONSUMER, incrementalResultsConsumer); configuration.put(JSConfigurationKeys.INCREMENTAL_RESULTS_CONSUMER, incrementalResultsConsumer);
} }
LookupTracker lookupTracker = services.get(LookupTracker.class);
if (lookupTracker != null) {
configuration.put(CommonConfigurationKeys.LOOKUP_TRACKER, lookupTracker);
}
String sourceMapEmbedContentString = arguments.getSourceMapEmbedSources(); String sourceMapEmbedContentString = arguments.getSourceMapEmbedSources();
SourceMapSourceEmbedding sourceMapContentEmbedding = sourceMapEmbedContentString != null ? SourceMapSourceEmbedding sourceMapContentEmbedding = sourceMapEmbedContentString != null ?
sourceMapContentEmbeddingMap.get(sourceMapEmbedContentString) : sourceMapContentEmbeddingMap.get(sourceMapEmbedContentString) :
@@ -41,6 +41,7 @@ fun createTopDownAnalyzerForJs(
bindingTrace: BindingTrace, bindingTrace: BindingTrace,
declarationProviderFactory: DeclarationProviderFactory, declarationProviderFactory: DeclarationProviderFactory,
languageVersionSettings: LanguageVersionSettings, languageVersionSettings: LanguageVersionSettings,
lookupTracker: LookupTracker,
fallbackPackage: PackageFragmentProvider? fallbackPackage: PackageFragmentProvider?
): LazyTopDownAnalyzer { ): LazyTopDownAnalyzer {
val storageComponentContainer = createContainer("TopDownAnalyzerForJs", JsPlatform) { val storageComponentContainer = createContainer("TopDownAnalyzerForJs", JsPlatform) {
@@ -50,7 +51,7 @@ fun createTopDownAnalyzerForJs(
useImpl<AnnotationResolverImpl>() useImpl<AnnotationResolverImpl>()
CompilerEnvironment.configure(this) CompilerEnvironment.configure(this)
useInstance(LookupTracker.DO_NOTHING) useInstance(lookupTracker)
useInstance(languageVersionSettings) useInstance(languageVersionSettings)
useImpl<ResolveSession>() useImpl<ResolveSession>()
@@ -16,11 +16,13 @@
package org.jetbrains.kotlin.js.analyze package org.jetbrains.kotlin.js.analyze
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.context.ContextForNewModule import org.jetbrains.kotlin.context.ContextForNewModule
import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.context.ProjectContext import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.frontend.js.di.createTopDownAnalyzerForJs import org.jetbrains.kotlin.frontend.js.di.createTopDownAnalyzerForJs
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
import org.jetbrains.kotlin.js.config.JSConfigurationKeys import org.jetbrains.kotlin.js.config.JSConfigurationKeys
import org.jetbrains.kotlin.js.config.JsConfig import org.jetbrains.kotlin.js.config.JsConfig
@@ -69,6 +71,7 @@ object TopDownAnalyzerFacadeForJS {
moduleContext, trace, moduleContext, trace,
FileBasedDeclarationProviderFactory(moduleContext.storageManager, files), FileBasedDeclarationProviderFactory(moduleContext.storageManager, files),
config.configuration.languageVersionSettings, config.configuration.languageVersionSettings,
config.configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING,
packageFragment packageFragment
) )
analyzerForJs.analyzeDeclarations(TopDownAnalysisMode.TopLevelDeclarations, files) analyzerForJs.analyzeDeclarations(TopDownAnalysisMode.TopLevelDeclarations, files)