From e2190ea95697d256c13320e707bcc155316917e2 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Wed, 21 Jun 2017 16:53:48 +0300 Subject: [PATCH] Use lookup tracker in JS compiler --- .../cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java | 6 ++++++ .../src/org/jetbrains/kotlin/frontend/js/di/injection.kt | 3 ++- .../kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java index 2df5376b892..a3356032110 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/js/K2JSCompiler.java @@ -46,6 +46,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys; import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.config.ContentRootsKt; 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.analyzer.JsAnalysisResult; import org.jetbrains.kotlin.js.config.EcmaVersion; @@ -381,6 +382,11 @@ public class K2JSCompiler extends CLICompiler { 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(); SourceMapSourceEmbedding sourceMapContentEmbedding = sourceMapEmbedContentString != null ? sourceMapContentEmbeddingMap.get(sourceMapEmbedContentString) : diff --git a/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt b/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt index d9d699a38d3..181429d41f5 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/frontend/js/di/injection.kt @@ -41,6 +41,7 @@ fun createTopDownAnalyzerForJs( bindingTrace: BindingTrace, declarationProviderFactory: DeclarationProviderFactory, languageVersionSettings: LanguageVersionSettings, + lookupTracker: LookupTracker, fallbackPackage: PackageFragmentProvider? ): LazyTopDownAnalyzer { val storageComponentContainer = createContainer("TopDownAnalyzerForJs", JsPlatform) { @@ -50,7 +51,7 @@ fun createTopDownAnalyzerForJs( useImpl() CompilerEnvironment.configure(this) - useInstance(LookupTracker.DO_NOTHING) + useInstance(lookupTracker) useInstance(languageVersionSettings) useImpl() diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt index ac41ba7cf33..fc375e0487e 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/analyze/TopDownAnalyzerFacadeForJS.kt @@ -16,11 +16,13 @@ package org.jetbrains.kotlin.js.analyze +import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.context.ContextForNewModule import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ProjectContext 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.config.JSConfigurationKeys import org.jetbrains.kotlin.js.config.JsConfig @@ -69,6 +71,7 @@ object TopDownAnalyzerFacadeForJS { moduleContext, trace, FileBasedDeclarationProviderFactory(moduleContext.storageManager, files), config.configuration.languageVersionSettings, + config.configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER) ?: LookupTracker.DO_NOTHING, packageFragment ) analyzerForJs.analyzeDeclarations(TopDownAnalysisMode.TopLevelDeclarations, files)