diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt b/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt index 78607a33815..ed2ce540970 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt @@ -100,8 +100,6 @@ object KotlinTypeFactory { val basicDescriptor = constructor.declarationDescriptor val descriptor = basicDescriptor?.let { kotlinTypeRefiner.refineDescriptor(it) } ?: return null - if (descriptor == basicDescriptor) return null - if (descriptor is TypeAliasDescriptor) { return ExpandedTypeOrRefinedConstructor(descriptor.computeExpandedType(arguments), null) } diff --git a/idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/a_common_dep(stdlib)/common.kt b/idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/a_common_dep(stdlib)/common.kt new file mode 100644 index 00000000000..57eb6b6cbad --- /dev/null +++ b/idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/a_common_dep(stdlib)/common.kt @@ -0,0 +1,11 @@ +package foo + +internal expect abstract class CompletionHandlerBase() { + abstract fun invoke(cause: Throwable?) +} + +internal abstract class JobNode : CompletionHandlerBase() + +public typealias CompletionHandler = (cause: Throwable?) -> Unit + +fun bar(x: CompletionHandler) { x.hashCode() } diff --git a/idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/a_jvm_dep(stdlib)/jvm.kt b/idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/a_jvm_dep(stdlib)/jvm.kt new file mode 100644 index 00000000000..a228955f64f --- /dev/null +++ b/idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/a_jvm_dep(stdlib)/jvm.kt @@ -0,0 +1,15 @@ +package foo + +private class CancelFutureOnCancel : JobNode() { + override fun invoke(cause: Throwable?) { + + } +} + +internal actual abstract class CompletionHandlerBase actual constructor() : CompletionHandler { + actual abstract override fun invoke(cause: Throwable?) +} + +fun main() { + bar(CancelFutureOnCancel()) +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java index 6ffe4d712a1..c847c6312cb 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java @@ -44,6 +44,11 @@ public class MultiPlatformHighlightingTestGenerated extends AbstractMultiPlatfor runTest("idea/testData/multiModuleHighlighting/multiplatform/catchHeaderExceptionInPlatformModule/"); } + @TestMetadata("completionHandlexCoroutines") + public void testCompletionHandlexCoroutines() throws Exception { + runTest("idea/testData/multiModuleHighlighting/multiplatform/completionHandlexCoroutines/"); + } + @TestMetadata("contracts") public void testContracts() throws Exception { runTest("idea/testData/multiModuleHighlighting/multiplatform/contracts/");