Compare commits

...

1 Commits

Author SHA1 Message Date
Dmitriy Dolovov
91fc419d5b IDE. Allow expect declarations in completion in shared native modules
Issue #KMM-218
2020-04-20 19:19:06 +07:00
2 changed files with 11 additions and 3 deletions

View File

@@ -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
while (i.hasNext()) {
if (i.next().platformName != firstPlatformName) return@let true

View File

@@ -39,7 +39,7 @@ import org.jetbrains.kotlin.idea.imports.importableFqName
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
import org.jetbrains.kotlin.idea.references.mainReference
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.psi.*
import org.jetbrains.kotlin.resolve.BindingContext
@@ -151,7 +151,7 @@ abstract class CompletionSession(
{ CompletionBenchmarkSink.instance.onFlush(this) },
prefixMatcher, parameters, resultSet,
createSorter(), (file as? KtCodeFragment)?.extraCompletionFilter,
moduleDescriptor.platform.isCommon()
moduleDescriptor.platform.isMultiPlatform()
)
}