diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/di/injection.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/di/injection.kt index a0e19d96c87..01eb2e76142 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/di/injection.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/di/injection.kt @@ -29,7 +29,7 @@ import org.jetbrains.kotlin.resolve.BodyResolveCache import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel import org.jetbrains.kotlin.resolve.jvm.JavaClassFinderPostConstruct import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformConfigurator +import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.lazy.FileScopeProvider import org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl import org.jetbrains.kotlin.resolve.lazy.ResolveSession @@ -39,7 +39,7 @@ public fun createContainerForReplWithJava( moduleContext: ModuleContext, bindingTrace: BindingTrace, declarationProviderFactory: DeclarationProviderFactory, moduleContentScope: GlobalSearchScope, additionalFileScopeProvider: FileScopeProvider.AdditionalScopes ): ContainerForReplWithJava = createContainer("ReplWithJava") { - configureModule(moduleContext, JvmPlatformConfigurator, bindingTrace) + configureModule(moduleContext, JvmPlatform, bindingTrace) configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, UsageCollector.DO_NOTHING) useInstance(additionalFileScopeProvider) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt index 2bac56e0ced..fb49491ee80 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt @@ -39,7 +39,7 @@ import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel import org.jetbrains.kotlin.resolve.jvm.JavaClassFinderPostConstruct import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformConfigurator +import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.lazy.FileScopeProviderImpl import org.jetbrains.kotlin.resolve.lazy.ResolveSession import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory @@ -74,7 +74,7 @@ public fun createContainerForLazyResolveWithJava( moduleContext: ModuleContext, bindingTrace: BindingTrace, declarationProviderFactory: DeclarationProviderFactory, moduleContentScope: GlobalSearchScope, moduleClassResolver: ModuleClassResolver ): Pair = createContainer("LazyResolveWithJava") { - configureModule(moduleContext, JvmPlatformConfigurator, bindingTrace) + configureModule(moduleContext, JvmPlatform, bindingTrace) configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, UsageCollector.DO_NOTHING) useInstance(moduleClassResolver) @@ -97,7 +97,7 @@ public fun createContainerForTopDownAnalyzerForJvm( moduleContentScope: GlobalSearchScope, usageCollector: UsageCollector ): ContainerForTopDownAnalyzerForJvm = createContainer("TopDownAnalyzerForJvm") { - configureModule(moduleContext, JvmPlatformConfigurator, bindingTrace) + configureModule(moduleContext, JvmPlatform, bindingTrace) configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, usageCollector) useInstance(declarationProviderFactory) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt index b3cc1f37b90..706f298ec1e 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt @@ -20,6 +20,6 @@ import org.jetbrains.kotlin.resolve.PlatformConfigurator import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.types.DynamicTypesSettings -public object JvmPlatform : TargetPlatform("JVM", DynamicTypesSettings()) { +public object JvmPlatform : TargetPlatform("JVM") { override val platformConfigurator: PlatformConfigurator = JvmPlatformConfigurator } \ No newline at end of file diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt index 78d7609a6ad..08919c888e2 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatformConfigurator.kt @@ -50,13 +50,11 @@ import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm.NullabilityInformationSource import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.types.JetType -import org.jetbrains.kotlin.types.TypeUtils +import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.expressions.SenselessComparisonChecker -import org.jetbrains.kotlin.types.flexibility -import org.jetbrains.kotlin.types.isFlexible public object JvmPlatformConfigurator : PlatformConfigurator( + DynamicTypesSettings(), additionalDeclarationCheckers = listOf( PlatformStaticAnnotationChecker(), LocalFunInlineChecker(), diff --git a/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt b/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt index 5d605b5f1c2..f07872b5599 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt @@ -33,7 +33,7 @@ import org.jetbrains.kotlin.types.DynamicTypesSettings import org.jetbrains.kotlin.types.expressions.* public fun StorageComponentContainer.configureModule( - moduleContext: ModuleContext, platformConfigurator: PlatformConfigurator + moduleContext: ModuleContext, platform: TargetPlatform ) { useInstance(moduleContext) useInstance(moduleContext.module) @@ -42,42 +42,38 @@ public fun StorageComponentContainer.configureModule( useInstance(moduleContext.builtIns) useInstance(moduleContext.platformToKotlinClassMap) - useInstance(platformConfigurator) + useInstance(platform) - platformConfigurator.configure(this) + platform.platformConfigurator.configure(this) } public fun StorageComponentContainer.configureModule( - moduleContext: ModuleContext, platformConfigurator: PlatformConfigurator, trace: BindingTrace + moduleContext: ModuleContext, platform: TargetPlatform, trace: BindingTrace ) { - configureModule(moduleContext, platformConfigurator) + configureModule(moduleContext, platform) useInstance(trace) } public fun createContainerForBodyResolve( moduleContext: ModuleContext, bindingTrace: BindingTrace, - platformConfigurator: PlatformConfigurator, statementFilter: StatementFilter, - dynamicTypesSettings: DynamicTypesSettings + platform: TargetPlatform, statementFilter: StatementFilter ): StorageComponentContainer = createContainer("BodyResolve") { - configureModule(moduleContext, platformConfigurator, bindingTrace) + configureModule(moduleContext, platform, bindingTrace) useInstance(statementFilter) - useInstance(dynamicTypesSettings) useInstance(BodyResolveCache.ThrowException) useImpl() } public fun createContainerForLazyBodyResolve( moduleContext: ModuleContext, kotlinCodeAnalyzer: KotlinCodeAnalyzer, - bindingTrace: BindingTrace, platformConfigurator: PlatformConfigurator, - dynamicTypesSettings: DynamicTypesSettings, + bindingTrace: BindingTrace, platform: TargetPlatform, bodyResolveCache: BodyResolveCache ): StorageComponentContainer = createContainer("LazyBodyResolve") { - configureModule(moduleContext, platformConfigurator, bindingTrace) + configureModule(moduleContext, platform, bindingTrace) useInstance(kotlinCodeAnalyzer) useInstance(kotlinCodeAnalyzer.getFileScopeProvider()) - useInstance(dynamicTypesSettings) useInstance(bodyResolveCache) useImpl() } @@ -85,13 +81,11 @@ public fun createContainerForLazyBodyResolve( public fun createContainerForLazyLocalClassifierAnalyzer( moduleContext: ModuleContext, bindingTrace: BindingTrace, - platformConfigurator: PlatformConfigurator, - dynamicTypesSettings: DynamicTypesSettings, + platform: TargetPlatform, localClassDescriptorHolder: LocalClassDescriptorHolder ): StorageComponentContainer = createContainer("LocalClassifierAnalyzer") { - configureModule(moduleContext, platformConfigurator, bindingTrace) + configureModule(moduleContext, platform, bindingTrace) - useInstance(dynamicTypesSettings) useInstance(localClassDescriptorHolder) useImpl() @@ -105,12 +99,13 @@ public fun createContainerForLazyLocalClassifierAnalyzer( } private fun createContainerForLazyResolve( - moduleContext: ModuleContext, declarationProviderFactory: DeclarationProviderFactory, bindingTrace: BindingTrace, - platformConfigurator: PlatformConfigurator, dynamicTypesSettings: DynamicTypesSettings + moduleContext: ModuleContext, + declarationProviderFactory: DeclarationProviderFactory, + bindingTrace: BindingTrace, + platform: TargetPlatform ): StorageComponentContainer = createContainer("LazyResolve") { - configureModule(moduleContext, platformConfigurator, bindingTrace) + configureModule(moduleContext, platform, bindingTrace) - useInstance(dynamicTypesSettings) useInstance(declarationProviderFactory) useInstance(UsageCollector.DO_NOTHING) @@ -120,14 +115,12 @@ private fun createContainerForLazyResolve( public fun createLazyResolveSession( moduleContext: ModuleContext, declarationProviderFactory: DeclarationProviderFactory, bindingTrace: BindingTrace, - platformConfigurator: PlatformConfigurator, dynamicTypesSettings: DynamicTypesSettings -): ResolveSession = createContainerForLazyResolve( - moduleContext, declarationProviderFactory, bindingTrace, platformConfigurator, dynamicTypesSettings -).get() + platform: TargetPlatform +): ResolveSession = createContainerForLazyResolve(moduleContext, declarationProviderFactory, bindingTrace, platform).get() public fun createContainerForMacros(project: Project, module: ModuleDescriptor): ContainerForMacros { val componentContainer = createContainer("Macros") { - configureModule(ModuleContext(module, project), TargetPlatform.Default.platformConfigurator) + configureModule(ModuleContext(module, project), TargetPlatform.Default) useImpl() } return ContainerForMacros(componentContainer) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index 40e2d763a54..28e92beca8b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -24,8 +24,7 @@ import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator import org.jetbrains.kotlin.types.DynamicTypesSettings public abstract class TargetPlatform( - public val platformName: String, - public val dynamicTypesSettings: DynamicTypesSettings + public val platformName: String ) { override fun toString(): String { return platformName @@ -33,8 +32,8 @@ public abstract class TargetPlatform( public abstract val platformConfigurator: PlatformConfigurator - public object Default : TargetPlatform("Default", DynamicTypesSettings()) { - override val platformConfigurator = PlatformConfigurator(listOf(), listOf(), listOf(), listOf()) + public object Default : TargetPlatform("Default") { + override val platformConfigurator = PlatformConfigurator(DynamicTypesSettings(), listOf(), listOf(), listOf(), listOf()) } } @@ -45,6 +44,7 @@ private val DEFAULT_VALIDATORS = listOf(DeprecatedSymbolValidator()) public open class PlatformConfigurator( + private val dynamicTypesSettings: DynamicTypesSettings, additionalDeclarationCheckers: List, additionalCallCheckers: List, additionalTypeCheckers: List, @@ -58,6 +58,7 @@ public open class PlatformConfigurator( public open fun configure(container: StorageComponentContainer) { with (container) { + useInstance(dynamicTypesSettings) declarationCheckers.forEach { useInstance(it) } callCheckers.forEach { useInstance(it) } typeCheckers.forEach { useInstance(it) } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt index e53b7ebac10..e116a455521 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt @@ -52,7 +52,7 @@ public class LocalClassifierAnalyzer( private val funcionDescriptorResolver: FunctionDescriptorResolver, private val typeResolver: TypeResolver, private val annotationResolver: AnnotationResolver, - private val platformConfigurator: PlatformConfigurator, + private val platform: TargetPlatform, private val dynamicTypesSettings: DynamicTypesSettings ) { fun processClassOrObject( @@ -66,8 +66,7 @@ public class LocalClassifierAnalyzer( val container = createContainerForLazyLocalClassifierAnalyzer( moduleContext, context.trace, - platformConfigurator, - dynamicTypesSettings, + platform, LocalClassDescriptorHolder( scope, classOrObject, diff --git a/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt b/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt index ad220698c2b..678f740e0b2 100644 --- a/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/renderer/AbstractDescriptorRendererTest.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.frontend.di.createLazyResolveSession import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformConfigurator +import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment import org.jetbrains.kotlin.resolve.lazy.ResolveSession import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory @@ -53,7 +53,7 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment context, FileBasedDeclarationProviderFactory(context.storageManager, listOf(psiFile)), CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace(), - JvmPlatformConfigurator, DynamicTypesSettings() + JvmPlatform ) context.initializeModuleContents(resolveSession.getPackageFragmentProvider()) @@ -81,7 +81,7 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment val classDescriptor = getDescriptor(jetClassOrObject, resolveSession) as ClassDescriptor addCorrespondingParameterDescriptor(classDescriptor.getUnsubstitutedPrimaryConstructor()!!, parameter) } - else -> super.visitParameter(parameter) + else -> super.visitParameter(parameter) } } diff --git a/compiler/tests/org/jetbrains/kotlin/tests/di/injection.kt b/compiler/tests/org/jetbrains/kotlin/tests/di/injection.kt index 474023bfb70..31abeeb688d 100644 --- a/compiler/tests/org/jetbrains/kotlin/tests/di/injection.kt +++ b/compiler/tests/org/jetbrains/kotlin/tests/di/injection.kt @@ -27,13 +27,13 @@ import org.jetbrains.kotlin.frontend.di.configureModule import org.jetbrains.kotlin.resolve.DescriptorResolver import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver import org.jetbrains.kotlin.resolve.TypeResolver -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformConfigurator +import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices import org.jetbrains.kotlin.types.expressions.FakeCallResolver public fun createContainerForTests(project: Project, module: ModuleDescriptor): ContainerForTests { return ContainerForTests(createContainer("Tests") { - configureModule(ModuleContext(module, project), JvmPlatformConfigurator) + configureModule(ModuleContext(module, project), JvmPlatform) useImpl() }) } diff --git a/compiler/tests/org/jetbrains/kotlin/types/JetDefaultModalityModifiersTest.java b/compiler/tests/org/jetbrains/kotlin/types/JetDefaultModalityModifiersTest.java index 98812ba0903..e1b1630c412 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/JetDefaultModalityModifiersTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/JetDefaultModalityModifiersTest.java @@ -105,8 +105,7 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture { new FileBasedDeclarationProviderFactory(moduleContext.getStorageManager(), Collections.singleton(aClass.getContainingJetFile())), new BindingTraceContext(), - TargetPlatform.Default.platformConfigurator, - new DynamicTypesSettings() + TargetPlatform.Default.INSTANCE$ ); return (ClassDescriptorWithResolutionScopes) resolveSession.getClassDescriptor(aClass); diff --git a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt index 006a458d568..ae639ee4136 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt @@ -130,7 +130,7 @@ public abstract class ElementResolver protected constructor( return statementFilterUsed } - val trace : BindingTrace = when (resolveElement) { + val trace: BindingTrace = when (resolveElement) { is JetNamedFunction -> functionAdditionalResolve(resolveSession, resolveElement, file, createStatementFilter()) is JetClassInitializer -> initializerAdditionalResolve(resolveSession, resolveElement, file, createStatementFilter()) @@ -388,10 +388,11 @@ public abstract class ElementResolver protected constructor( ): BodyResolver { val globalContext = SimpleGlobalContext(resolveSession.getStorageManager(), resolveSession.getExceptionTracker()) val module = resolveSession.getModuleDescriptor() - val targetPlatform = getTargetPlatform(file) return createContainerForBodyResolve( globalContext.withProject(file.getProject()).withModule(module), - trace, targetPlatform.platformConfigurator, statementFilter, targetPlatform.dynamicTypesSettings + trace, + getTargetPlatform(file), + statementFilter ).get() } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt index eb5ea6c9af8..e1681c83f96 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.frontend.di.createLazyResolveSession import org.jetbrains.kotlin.idea.framework.KotlinJavaScriptLibraryDetectionUtil import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS -import org.jetbrains.kotlin.js.resolve.JsPlatformConfigurator +import org.jetbrains.kotlin.js.resolve.JsPlatform import org.jetbrains.kotlin.resolve.BindingTraceContext import org.jetbrains.kotlin.resolve.lazy.ResolveSession import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService @@ -56,9 +56,7 @@ public object JsAnalyzerFacade : AnalyzerFacade() diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java index 62790499ed5..817633f57c9 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java @@ -254,8 +254,7 @@ public class JetSourceNavigationHelper { newModuleContext, providerFactory, new BindingTraceContext(), - TargetPlatform.Default.platformConfigurator, - new DynamicTypesSettings() + TargetPlatform.Default.INSTANCE$ ); newModuleContext.initializeModuleContents(resolveSession.getPackageFragmentProvider()); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.java index e5742ee891a..05d53565b97 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.java @@ -111,8 +111,7 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent { DiPackage.createLazyResolveSession( newModuleContext, declarationFactory, new BindingTraceContext(), - TargetPlatform.Default.INSTANCE$.getPlatformConfigurator(), - new DynamicTypesSettings() + TargetPlatform.Default.INSTANCE$ ); newModuleContext.initializeModuleContents(resolveSession.getPackageFragmentProvider()); 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 3b88ffcd4a3..8d389a40992 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 @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.frontend.di.configureModule import org.jetbrains.kotlin.incremental.components.UsageCollector -import org.jetbrains.kotlin.js.resolve.JsPlatformConfigurator +import org.jetbrains.kotlin.js.resolve.JsPlatform import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.BodyResolveCache import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel @@ -38,7 +38,7 @@ public fun createTopDownAnalyzerForJs( declarationProviderFactory: DeclarationProviderFactory ): LazyTopDownAnalyzerForTopLevel { val storageComponentContainer = createContainer("TopDownAnalyzerForJs") { - configureModule(moduleContext, JsPlatformConfigurator, bindingTrace) + configureModule(moduleContext, JsPlatform, bindingTrace) useInstance(declarationProviderFactory) useImpl() @@ -46,7 +46,6 @@ public fun createTopDownAnalyzerForJs( useInstance(UsageCollector.DO_NOTHING) useImpl() useImpl() - useImpl() } return storageComponentContainer.get() } diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt index 1f269cf3769..78a3914c93c 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt @@ -20,6 +20,6 @@ import org.jetbrains.kotlin.resolve.PlatformConfigurator import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.types.DynamicTypesAllowed -public object JsPlatform : TargetPlatform("JS", DynamicTypesAllowed()) { +public object JsPlatform : TargetPlatform("JS") { override val platformConfigurator: PlatformConfigurator = JsPlatformConfigurator } \ No newline at end of file diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt index 59af422615a..d72bff060b7 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatformConfigurator.kt @@ -18,8 +18,10 @@ package org.jetbrains.kotlin.js.resolve import org.jetbrains.kotlin.js.resolve.diagnostics.JsCallChecker import org.jetbrains.kotlin.resolve.PlatformConfigurator +import org.jetbrains.kotlin.types.DynamicTypesAllowed public object JsPlatformConfigurator : PlatformConfigurator( + DynamicTypesAllowed(), additionalDeclarationCheckers = listOf(NativeInvokeChecker(), NativeGetterChecker(), NativeSetterChecker(), ClassDeclarationChecker()), additionalCallCheckers = listOf(JsCallChecker()), additionalTypeCheckers = listOf(),