K1: Implement a checker that disallows to have different member scopes for expect open and its actual

^KT-22841 Fixed
Review: https://jetbrains.team/p/kt/reviews/11603/timeline

The commit also introduces `@AllowDifferentMembersInActual` annotation in
stdlib which allows to suppress the diagnostic
This commit is contained in:
Nikita Bobko
2023-07-11 18:00:53 +02:00
committed by Space Team
parent 797ca34a34
commit 25c082f02b
155 changed files with 3875 additions and 40 deletions
@@ -28,4 +28,6 @@ package kotlin
@Suppress("NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS")
@SinceKotlin("1.3") public actual typealias ConcurrentModificationException = java.util.ConcurrentModificationException
@OptIn(ExperimentalMultiplatform::class)
@AllowDifferentMembersInActual // New 'reversed', 'thenComparing', etc. members are added compared to the expect declaration
@SinceKotlin("1.1") public actual typealias Comparator<T> = java.util.Comparator<T>
@@ -7,6 +7,8 @@
package kotlin.text
@OptIn(ExperimentalMultiplatform::class)
@AllowDifferentMembersInActual // New 'append' members are added compared to the expect declaration
@SinceKotlin("1.1") public actual typealias Appendable = java.lang.Appendable
@Suppress("ACTUAL_WITHOUT_EXPECT") // TODO: some supertypes are missing