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.composeContainer
import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
import org.jetbrains.kotlin.resolve.calls.checkers.*
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
@@ -34,6 +35,7 @@ abstract class TargetPlatform(val platformName: String) {
abstract val platformConfigurator: PlatformConfigurator
abstract val defaultImports: List<ImportPath>
open val excludedImports: List<FqName> get() = emptyList()
abstract val multiTargetPlatform: MultiTargetPlatform
@@ -63,6 +63,6 @@ class DefaultImportProvider(
.mapNotNull { it.expandedType.constructor.declarationDescriptor?.fqNameSafe }
.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.KotlinBuiltIns
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.resolve.MultiTargetPlatform
import org.jetbrains.kotlin.resolve.PlatformConfigurator
@@ -32,4 +33,6 @@ object JsPlatform : TargetPlatform("JS") {
get() = DefaultBuiltIns.Instance
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") }
}