[test] Run checkers in metadata-like style to see what diagnostics metadata compilation omits
Review: https://jetbrains.team/p/kt/reviews/14807 Technically, *.ll.kt should have been covering that. But I see that there slight differences
This commit is contained in:
+2
-2
@@ -1,8 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!><!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>A<!><!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
Vendored
+2
-2
@@ -1,10 +1,10 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class A<!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>A<!><!>
|
||||
|
||||
// FILE: common2.kt
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
<!CONFLICTING_OVERLOADS!>expect fun main()<!>
|
||||
<!CONFLICTING_OVERLOADS!>expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>main<!>()<!>
|
||||
|
||||
// FILE: common2.kt
|
||||
<!CONFLICTING_OVERLOADS!>actual fun <!ACTUAL_WITHOUT_EXPECT!>main<!>()<!> {}
|
||||
<!CONFLICTING_OVERLOADS!>actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>main<!>()<!> {}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect <!EXPECTED_EXTERNAL_DECLARATION!>external<!> fun foo()
|
||||
expect <!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}!>external<!> fun foo()
|
||||
expect fun bar()
|
||||
|
||||
expect <!EXPECTED_EXTERNAL_DECLARATION, WRONG_MODIFIER_TARGET!>external<!> var prop: String
|
||||
expect <!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}, WRONG_MODIFIER_TARGET!>external<!> var prop: String
|
||||
|
||||
expect var getAndSet: String
|
||||
<!EXPECTED_EXTERNAL_DECLARATION!>external<!> get
|
||||
<!EXPECTED_EXTERNAL_DECLARATION!>external<!> set
|
||||
<!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}!>external<!> get
|
||||
<!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}!>external<!> set
|
||||
|
||||
<!EXPECTED_EXTERNAL_DECLARATION, WRONG_MODIFIER_TARGET!>external<!> expect val explicitGetter: String
|
||||
<!EXPECTED_EXTERNAL_DECLARATION!>external<!> get
|
||||
<!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}, WRONG_MODIFIER_TARGET!>external<!> expect val explicitGetter: String
|
||||
<!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}!>external<!> get
|
||||
|
||||
expect <!EXPECTED_EXTERNAL_DECLARATION, WRONG_MODIFIER_TARGET!>external<!> class A {
|
||||
<!EXPECTED_EXTERNAL_DECLARATION!>external<!> fun foo()
|
||||
expect <!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}, WRONG_MODIFIER_TARGET!>external<!> class A {
|
||||
<!EXPECTED_EXTERNAL_DECLARATION, EXPECTED_EXTERNAL_DECLARATION{METADATA}!>external<!> fun foo()
|
||||
fun bar()
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
expect annotation class ActualOnly
|
||||
|
||||
@RequiresOptIn
|
||||
<!EXPECT_ACTUAL_OPT_IN_ANNOTATION!>expect<!> annotation class Both
|
||||
<!EXPECT_ACTUAL_OPT_IN_ANNOTATION, EXPECT_ACTUAL_OPT_IN_ANNOTATION{METADATA}!>expect<!> annotation class Both
|
||||
|
||||
@RequiresOptIn
|
||||
@OptionalExpectation
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// WITH_STDLIB
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
@file:OptIn(ExperimentalMultiplatform::class)
|
||||
|
||||
expect annotation class ActualOnly
|
||||
|
||||
@RequiresOptIn
|
||||
<!EXPECT_ACTUAL_OPT_IN_ANNOTATION!>expect<!> annotation class Both
|
||||
|
||||
@RequiresOptIn
|
||||
@OptionalExpectation
|
||||
expect annotation class MyOptIn
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
@RequiresOptIn
|
||||
<!EXPECT_ACTUAL_OPT_IN_ANNOTATION!>actual<!> annotation class ActualOnly
|
||||
|
||||
@RequiresOptIn
|
||||
<!EXPECT_ACTUAL_OPT_IN_ANNOTATION!>actual<!> annotation class Both
|
||||
|
||||
@RequiresOptIn
|
||||
actual annotation class MyOptIn
|
||||
@@ -1,13 +1,13 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect <!EXPECTED_TAILREC_FUNCTION, NO_TAIL_CALLS_FOUND!>tailrec<!> fun foo(p: Int): Int
|
||||
expect <!EXPECTED_TAILREC_FUNCTION, EXPECTED_TAILREC_FUNCTION{METADATA}, NO_TAIL_CALLS_FOUND!>tailrec<!> fun foo(p: Int): Int
|
||||
expect fun bar(p: Int): Int
|
||||
|
||||
expect <!WRONG_MODIFIER_TARGET!>tailrec<!> val notReport: String
|
||||
|
||||
expect class A {
|
||||
<!EXPECTED_TAILREC_FUNCTION, NO_TAIL_CALLS_FOUND!>tailrec<!> fun foo(p: Int): Int
|
||||
<!EXPECTED_TAILREC_FUNCTION, EXPECTED_TAILREC_FUNCTION{METADATA}, NO_TAIL_CALLS_FOUND!>tailrec<!> fun foo(p: Int): Int
|
||||
fun bar(p: Int): Int
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect <!EXPECTED_TAILREC_FUNCTION, NO_TAIL_CALLS_FOUND!>tailrec<!> fun foo(p: Int): Int
|
||||
expect fun bar(p: Int): Int
|
||||
|
||||
expect <!WRONG_MODIFIER_TARGET!>tailrec<!> val notReport: String
|
||||
|
||||
expect class A {
|
||||
<!EXPECTED_TAILREC_FUNCTION, NO_TAIL_CALLS_FOUND!>tailrec<!> fun foo(p: Int): Int
|
||||
fun bar(p: Int): Int
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
actual tailrec fun foo(p: Int): Int = foo(p)
|
||||
actual tailrec fun bar(p: Int): Int = bar(p)
|
||||
|
||||
actual val notReport: String = "123"
|
||||
|
||||
actual class A {
|
||||
actual tailrec fun foo(p: Int): Int = foo(p)
|
||||
actual tailrec fun bar(p: Int): Int = bar(p)
|
||||
}
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
// FILE: common.kt
|
||||
|
||||
expect class Foo {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>bar<!>()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>bar<!>()
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class Foo {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>bar<!>()
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo {
|
||||
actual fun bar() {}
|
||||
}
|
||||
+3
-3
@@ -6,7 +6,7 @@ expect abstract class BaseA() {
|
||||
}
|
||||
expect open <!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class BaseAImpl<!>() : BaseA
|
||||
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class DerivedA1<!> : BaseAImpl()
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED, ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED{METADATA}!>class DerivedA1<!> : BaseAImpl()
|
||||
class DerivedA2 : BaseAImpl() {
|
||||
override fun foo() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
@@ -18,7 +18,7 @@ expect interface BaseB {
|
||||
}
|
||||
expect open <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class BaseBImpl<!>() : BaseB
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class DerivedB1<!> : BaseBImpl()
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED, ABSTRACT_MEMBER_NOT_IMPLEMENTED{METADATA}!>class DerivedB1<!> : BaseBImpl()
|
||||
class DerivedB2 : BaseBImpl() {
|
||||
override fun foo() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
@@ -30,7 +30,7 @@ expect interface BaseC {
|
||||
}
|
||||
expect abstract class BaseCImpl() : BaseC
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class DerivedC1<!> : BaseCImpl()
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED, ABSTRACT_MEMBER_NOT_IMPLEMENTED{METADATA}!>class DerivedC1<!> : BaseCImpl()
|
||||
class DerivedC2 : BaseCImpl() {
|
||||
override fun foo() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect abstract class BaseA() {
|
||||
abstract fun foo()
|
||||
}
|
||||
expect open <!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class BaseAImpl<!>() : BaseA
|
||||
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class DerivedA1<!> : BaseAImpl()
|
||||
class DerivedA2 : BaseAImpl() {
|
||||
override fun foo() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
|
||||
|
||||
|
||||
expect interface BaseB {
|
||||
fun foo()
|
||||
}
|
||||
expect open <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class BaseBImpl<!>() : BaseB
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class DerivedB1<!> : BaseBImpl()
|
||||
class DerivedB2 : BaseBImpl() {
|
||||
override fun foo() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
|
||||
|
||||
|
||||
expect interface BaseC {
|
||||
fun foo()
|
||||
}
|
||||
expect abstract class BaseCImpl() : BaseC
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class DerivedC1<!> : BaseCImpl()
|
||||
class DerivedC2 : BaseCImpl() {
|
||||
override fun foo() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
|
||||
|
||||
|
||||
expect interface BaseD {
|
||||
fun foo()
|
||||
}
|
||||
abstract class BaseDImpl() : BaseD {
|
||||
fun bar() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
|
||||
|
||||
|
||||
expect interface BaseE {
|
||||
fun foo()
|
||||
}
|
||||
sealed class BaseEImpl() : BaseE {
|
||||
fun bar() = super.<!ABSTRACT_SUPER_CALL!>foo<!>()
|
||||
}
|
||||
|
||||
|
||||
|
||||
expect interface BaseF {
|
||||
fun foo()
|
||||
}
|
||||
expect <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class BaseFImpl<!>() : BaseF
|
||||
|
||||
|
||||
|
||||
expect abstract class BaseG() {
|
||||
abstract fun foo()
|
||||
}
|
||||
expect open class BaseGImpl() : BaseG {
|
||||
override fun foo()
|
||||
}
|
||||
class DerivedG1 : BaseGImpl()
|
||||
Vendored
+1
-1
@@ -8,7 +8,7 @@ expect open class B()
|
||||
// TARGET_PLATFORM: Common
|
||||
actual class A : B() {
|
||||
// "Nothing to override" in metadata compilation. Unfortunately we don't check metadata compilation in diagnostic tests
|
||||
override fun foo() {}
|
||||
<!NOTHING_TO_OVERRIDE{METADATA}!>override<!> fun foo() {}
|
||||
}
|
||||
actual class C : B() {
|
||||
// Nothing to override in platform compilation.
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ expect class Foo() {
|
||||
// TARGET_PLATFORM: Common
|
||||
expect open class Base() {}
|
||||
|
||||
actual class Foo : Base() {
|
||||
actual class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS{METADATA}!>Foo<!> : Base() {
|
||||
}
|
||||
|
||||
// MODULE: main()()(intermediate)
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ expect abstract class Foo() {
|
||||
abstract fun foo()
|
||||
}
|
||||
|
||||
class Impl : Foo() {}
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED{METADATA}!>class Impl<!> : Foo() {}
|
||||
|
||||
fun common() {
|
||||
Impl().foo()
|
||||
|
||||
Vendored
+1
-1
@@ -12,7 +12,7 @@ class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>C<!>
|
||||
|
||||
actual class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
|
||||
class <!ACTUAL_MISSING, PACKAGE_OR_CLASSIFIER_REDECLARATION!>B<!>
|
||||
class <!ACTUAL_MISSING, ACTUAL_MISSING{METADATA}, PACKAGE_OR_CLASSIFIER_REDECLARATION!>B<!>
|
||||
|
||||
expect class C
|
||||
|
||||
|
||||
+2
-2
@@ -9,8 +9,8 @@ expect class A {
|
||||
expect class B
|
||||
|
||||
// K1 EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE false positive
|
||||
actual class A {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>foo<!>(x: B) = "a"
|
||||
actual class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS{METADATA}!>A<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>foo<!>(x: B) = "a"
|
||||
}
|
||||
|
||||
// MODULE: main()()(intermediate)
|
||||
|
||||
+20
-20
@@ -1,47 +1,47 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>CommonClass<!> {
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>CommonClass<!> {
|
||||
fun memberFun()
|
||||
val memberProp: Int
|
||||
class Nested
|
||||
inner class Inner
|
||||
}<!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>CommonClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT!>Inner<!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>CommonClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Inner<!>
|
||||
}
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonFun<!>()<!>
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonFun<!>() {}
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>commonFun<!>()<!>
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>commonFun<!>() {}
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonProperty<!>: String<!>
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonProperty<!>: String
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>commonProperty<!>: String<!>
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>commonProperty<!>: String
|
||||
get() = "hello"
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>IntermediateClass<!> {
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>IntermediateClass<!> {
|
||||
fun memberFun()
|
||||
val memberProp: Int
|
||||
class Nested
|
||||
inner class Inner
|
||||
}
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>IntermediateClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT!>Inner<!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>IntermediateClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Inner<!>
|
||||
}
|
||||
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateFun<!>()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateFun<!>() {}
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>intermediateFun<!>()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>intermediateFun<!>() {}
|
||||
|
||||
expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateProperty<!>: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateProperty<!>: String
|
||||
expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>intermediateProperty<!>: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>intermediateProperty<!>: String
|
||||
get() = "hello"
|
||||
|
||||
// MODULE: main()()(intermediate)
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@ expect fun parameterCount()
|
||||
fun parameterCount(p: String) {}
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun parameterCount2()<!>
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>parameterCount2<!>(p: String) {}
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>parameterCount2<!>(p: String) {}
|
||||
|
||||
expect fun callableKind(): Int
|
||||
val callableKind: Int = 1
|
||||
@@ -13,10 +13,10 @@ val callableKind: Int = 1
|
||||
expect fun <T> typeParameterCount()
|
||||
fun typeParameterCount() {}
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect enum class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>EnumEntries<!> {
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect enum class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>EnumEntries<!> {
|
||||
ONE, TWO;
|
||||
}<!>
|
||||
actual enum class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>EnumEntries<!> {
|
||||
actual enum class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{METADATA}!>EnumEntries<!> {
|
||||
ONE;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>impl<!> class <!ACTUAL_WITHOUT_EXPECT!>First<!><!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>impl<!> class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>First<!><!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class Second<!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class <!ACTUAL_WITHOUT_EXPECT!>Third<!><!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>header<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Third<!><!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class <!ACTUAL_WITHOUT_EXPECT!>Fourth<!><!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>expect<!> class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Fourth<!><!>
|
||||
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class <!ACTUAL_WITHOUT_EXPECT!>Fifth<!>
|
||||
<!DEPRECATED_MODIFIER, INCOMPATIBLE_MODIFIERS!>impl<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Fifth<!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!INCOMPATIBLE_MODIFIERS!>expect<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class <!ACTUAL_WITHOUT_EXPECT!>Sixth<!><!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!INCOMPATIBLE_MODIFIERS!>expect<!> <!INCOMPATIBLE_MODIFIERS!>actual<!> class <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>Sixth<!><!>
|
||||
|
||||
+2
-2
@@ -16,8 +16,8 @@ expect interface I2 {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>x: Int<!>)
|
||||
}
|
||||
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>interface CommonInterface<!> : I1, I2 {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>x: Int<!>)
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE, MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE{METADATA}!>interface CommonInterface<!> : I1, I2 {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES, MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES{METADATA}!>x: Int<!>)
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
// LANGUAGE: +MultiPlatformProjects
|
||||
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect interface I1 {
|
||||
fun foo(x: Int = 1)
|
||||
fun bar(x: Int = 1)
|
||||
}
|
||||
|
||||
expect interface I2 {
|
||||
fun foo(x: Int = 2)
|
||||
fun bar(x: Int = 2)
|
||||
}
|
||||
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>expect interface ExpectInterface<!> : I1, I2 {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>x: Int<!>)
|
||||
}
|
||||
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>interface CommonInterface<!> : I1, I2 {
|
||||
override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>x: Int<!>)
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: main.kt
|
||||
|
||||
actual interface I1 {
|
||||
actual fun foo(x: Int)
|
||||
actual fun bar(x: Int)
|
||||
}
|
||||
|
||||
actual interface I2 {
|
||||
actual fun foo(x: Int)
|
||||
actual fun bar(x: Int)
|
||||
}
|
||||
|
||||
<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES_WHEN_NO_EXPLICIT_OVERRIDE!>actual interface ExpectInterface<!> : I1, I2 {
|
||||
actual override fun foo(<!MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPES!>x: Int<!>)
|
||||
}
|
||||
Vendored
+2
-2
@@ -1,7 +1,7 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
<!CONFLICTING_OVERLOADS, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
<!CONFLICTING_OVERLOADS, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
<!CONFLICTING_OVERLOADS, CONFLICTING_OVERLOADS{METADATA}, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
<!CONFLICTING_OVERLOADS, CONFLICTING_OVERLOADS{METADATA}, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo(x: Int)<!>
|
||||
|
||||
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
<!CONFLICTING_OVERLOADS, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
<!CONFLICTING_OVERLOADS, CONFLICTING_OVERLOADS{METADATA}, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!CONFLICTING_OVERLOADS, EXPECTED_DECLARATION_WITH_BODY!>expect fun foo()<!> {}<!>
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!CONFLICTING_OVERLOADS, CONFLICTING_OVERLOADS{METADATA}, EXPECTED_DECLARATION_WITH_BODY!>expect fun foo()<!> {}<!>
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!><!EXPECTED_DECLARATION_WITH_BODY!>expect fun bar()<!> {}<!>
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// MODULE: m1-jvm
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, ACTUAL_WITHOUT_EXPECT{METADATA}!>foo<!>() { }
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-jvm
|
||||
// FILE: jvm.kt
|
||||
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// MODULE: m1-jvm
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>foo<!>() { }
|
||||
Reference in New Issue
Block a user