IDE. Allow expect declarations in completion in shared native modules
Issue #KMM-218
This commit is contained in:
@@ -84,7 +84,15 @@ interface TargetPlatformVersion {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun TargetPlatform?.isCommon(): Boolean = this != null && size > 1 && iterator().let { i ->
|
/**
|
||||||
|
* Whether this is a [TargetPlatform] that targets multiple [SimplePlatform]s.
|
||||||
|
*/
|
||||||
|
fun TargetPlatform?.isMultiPlatform(): Boolean = this != null && size > 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether this is "Common" platform in its classical sense (MPP v1).
|
||||||
|
*/
|
||||||
|
fun TargetPlatform?.isCommon(): Boolean = isMultiPlatform() && this!!.iterator().let { i ->
|
||||||
val firstPlatformName = i.next().platformName
|
val firstPlatformName = i.next().platformName
|
||||||
while (i.hasNext()) {
|
while (i.hasNext()) {
|
||||||
if (i.next().platformName != firstPlatformName) return@let true
|
if (i.next().platformName != firstPlatformName) return@let true
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import org.jetbrains.kotlin.idea.imports.importableFqName
|
|||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
import org.jetbrains.kotlin.idea.util.*
|
import org.jetbrains.kotlin.idea.util.*
|
||||||
import org.jetbrains.kotlin.platform.isCommon
|
import org.jetbrains.kotlin.platform.isMultiPlatform
|
||||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
@@ -151,7 +151,7 @@ abstract class CompletionSession(
|
|||||||
{ CompletionBenchmarkSink.instance.onFlush(this) },
|
{ CompletionBenchmarkSink.instance.onFlush(this) },
|
||||||
prefixMatcher, parameters, resultSet,
|
prefixMatcher, parameters, resultSet,
|
||||||
createSorter(), (file as? KtCodeFragment)?.extraCompletionFilter,
|
createSorter(), (file as? KtCodeFragment)?.extraCompletionFilter,
|
||||||
moduleDescriptor.platform.isCommon()
|
moduleDescriptor.platform.isMultiPlatform()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user