[FE 1.0] Prohibit implicit Java actualization in K1
^KT-58545 Fixed Review: https://jetbrains.team/p/kt/reviews/10561 It's not yet supported in K2 KT-59213 Related tests: - ApiTest.testStdlib - RuntimePublicAPITest.kotlinStdlibRuntimeMerged - KotlinProjectViewTestGenerated.test_Arrays (in Kotlin plugin)
This commit is contained in:
Vendored
+20
@@ -0,0 +1,20 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
import kotlin.jvm.ImplicitlyActualizedByJvmDeclaration
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>@OptIn(ExperimentalMultiplatform::class)
|
||||
@ImplicitlyActualizedByJvmDeclaration
|
||||
expect class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Foo<!>() {
|
||||
fun foo()
|
||||
}<!>
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: Foo.java
|
||||
|
||||
public class Foo {
|
||||
public void foo() {
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
import kotlin.jvm.ImplicitlyActualizedByJvmDeclaration
|
||||
|
||||
@OptIn(ExperimentalMultiplatform::class)
|
||||
@ImplicitlyActualizedByJvmDeclaration
|
||||
expect class Foo() {
|
||||
fun foo()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: Foo.java
|
||||
|
||||
public class Foo {
|
||||
public void foo() {
|
||||
}
|
||||
}
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
<!NO_ACTUAL_FOR_EXPECT{JVM}!>expect class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Foo<!>() {
|
||||
fun foo()
|
||||
}<!>
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: Foo.java
|
||||
|
||||
public class Foo {
|
||||
public void foo() {
|
||||
}
|
||||
}
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class <!IMPLICIT_JVM_ACTUALIZATION{JVM}!>Foo<!>() {
|
||||
fun foo()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: Foo.java
|
||||
|
||||
public class Foo {
|
||||
public void foo() {
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
<!INCOMPATIBLE_MATCHING{JVM}!>expect class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Foo<!>(i: Int) {
|
||||
fun foo()
|
||||
}<!>
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: Foo.java
|
||||
|
||||
public class Foo {
|
||||
public Foo(int i) {}
|
||||
public void foo() {}
|
||||
}
|
||||
|
||||
// FILE: jvm.kt
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Foo<!><T>(t: T) {
|
||||
fun foo() {}
|
||||
}
|
||||
Vendored
+20
@@ -0,0 +1,20 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class <!IMPLICIT_JVM_ACTUALIZATION{JVM}!>Foo<!>(i: Int) {
|
||||
fun <!AMBIGUOUS_ACTUALS{JVM}!>foo<!>()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: Foo.java
|
||||
|
||||
public class Foo {
|
||||
public Foo(int i) {}
|
||||
public void foo() {}
|
||||
}
|
||||
|
||||
// FILE: jvm.kt
|
||||
|
||||
class Foo<T>(t: T) {
|
||||
fun foo() {}
|
||||
}
|
||||
Reference in New Issue
Block a user