Add exclusions to JS platform default imports
This commit is contained in:
@@ -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") }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user