Add exclusions to JS platform default imports

This commit is contained in:
Ilya Gorbunov
2017-01-27 22:36:49 +03:00
parent d0b7dc8f4e
commit cd5f68f119
3 changed files with 6 additions and 1 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.container.StorageComponentContainer import org.jetbrains.kotlin.container.StorageComponentContainer
import org.jetbrains.kotlin.container.composeContainer import org.jetbrains.kotlin.container.composeContainer
import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
import org.jetbrains.kotlin.resolve.calls.checkers.* import org.jetbrains.kotlin.resolve.calls.checkers.*
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
@@ -34,6 +35,7 @@ abstract class TargetPlatform(val platformName: String) {
abstract val platformConfigurator: PlatformConfigurator abstract val platformConfigurator: PlatformConfigurator
abstract val defaultImports: List<ImportPath> abstract val defaultImports: List<ImportPath>
open val excludedImports: List<FqName> get() = emptyList()
abstract val multiTargetPlatform: MultiTargetPlatform abstract val multiTargetPlatform: MultiTargetPlatform
@@ -63,6 +63,6 @@ class DefaultImportProvider(
.mapNotNull { it.expandedType.constructor.declarationDescriptor?.fqNameSafe } .mapNotNull { it.expandedType.constructor.declarationDescriptor?.fqNameSafe }
.filter { nonKotlinDefaultImportedPackages.any(it::isChildOf) } .filter { nonKotlinDefaultImportedPackages.any(it::isChildOf) }
nonKotlinAliasedTypeFqNames nonKotlinAliasedTypeFqNames + targetPlatform.excludedImports
} }
} }
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.js.resolve
import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.ImportPath import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.resolve.MultiTargetPlatform import org.jetbrains.kotlin.resolve.MultiTargetPlatform
import org.jetbrains.kotlin.resolve.PlatformConfigurator import org.jetbrains.kotlin.resolve.PlatformConfigurator
@@ -32,4 +33,6 @@ object JsPlatform : TargetPlatform("JS") {
get() = DefaultBuiltIns.Instance get() = DefaultBuiltIns.Instance
override val multiTargetPlatform = MultiTargetPlatform.Specific(platformName) override val multiTargetPlatform = MultiTargetPlatform.Specific(platformName)
override val excludedImports: List<FqName> = listOf("Promise", "Date", "Console", "Math", "RegExp", "RegExpMatch", "Json", "json").map { FqName("kotlin.js.$it") }
} }