Update NativePlatformAnalyzerServices from Kotlin/Native repo

This commit is contained in:
Dmitriy Dolovov
2020-01-29 15:52:57 +07:00
parent b49e6ac581
commit 25ff33cc3c
2 changed files with 19 additions and 0 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.resolve.konan.platform
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.*
import org.jetbrains.kotlin.storage.StorageManager
@@ -14,4 +15,9 @@ object NativePlatformAnalyzerServices : PlatformDependentAnalyzerServices() {
}
override val platformConfigurator: PlatformConfigurator = NativePlatformConfigurator
override val excludedImports: List<FqName> =
listOf("identityHashCode").map {
FqName("kotlin.native.$it")
}
}
@@ -7,14 +7,19 @@ package org.jetbrains.kotlin.resolve.konan.platform
import org.jetbrains.kotlin.container.StorageComponentContainer
import org.jetbrains.kotlin.container.useImpl
import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.psi.KtCallableDeclaration
import org.jetbrains.kotlin.resolve.*
import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker
import org.jetbrains.kotlin.resolve.inline.ReasonableInlineRule
import org.jetbrains.kotlin.resolve.jvm.checkers.SuperCallWithDefaultArgumentsChecker
object NativePlatformConfigurator : PlatformConfiguratorBase(
additionalCallCheckers = listOf(SuperCallWithDefaultArgumentsChecker())
) {
override fun configureModuleComponents(container: StorageComponentContainer) {
container.useInstance(NativeInliningRule)
}
override fun configureModuleDependentCheckers(container: StorageComponentContainer) {
@@ -22,3 +27,11 @@ object NativePlatformConfigurator : PlatformConfiguratorBase(
container.useImpl<ExpectedActualDeclarationChecker>()
}
}
object NativeInliningRule : ReasonableInlineRule {
override fun isInlineReasonable(
descriptor: CallableMemberDescriptor,
declaration: KtCallableDeclaration,
context: BindingContext
): Boolean = true
}