JVM IR: fix flags of $default methods in multi-file facades
Do not change origin of multifile class bridges to something else because, as it turns out, there are numerous origin-specific checks in the codegen that start to behave differently for multifile bridges. Instead of the method-targeted origin MULTIFILE_BRIDGE, use new class origin JVM_MULTIFILE_CLASS to detect whether a declaration is a multifile bridge. #KT-40198 Fixed #KT-43145 Fixed
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
// WITH_RUNTIME
|
||||
// The difference of JVM and JVM_IR in generating privateFunction here is reported at KT-41841.
|
||||
// FILE: test.kt
|
||||
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("A")
|
||||
|
||||
private fun private(x: String = "") {}
|
||||
|
||||
private inline fun privateInline(x: String, y: Int = 0) {}
|
||||
|
||||
internal fun internal(x: String = "") {}
|
||||
|
||||
internal inline fun internalInline(x: String, y: Int = 0) {}
|
||||
|
||||
@PublishedApi
|
||||
internal fun published(x: String = "") {}
|
||||
|
||||
@PublishedApi
|
||||
internal fun publishedInline(x: String = "") {}
|
||||
|
||||
public fun public(x: String = "") {}
|
||||
|
||||
public inline fun publicInline(x: String, y: Int = 0) {}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
@kotlin.Metadata
|
||||
public final class A {
|
||||
// source: 'test.kt'
|
||||
public synthetic static method internal$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method internal(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method internalInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method internalInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
public synthetic static method public$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method public(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publicInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method publicInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
public synthetic static method published$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method published(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publishedInline$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method publishedInline(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
synthetic final class A__TestKt {
|
||||
// source: 'test.kt'
|
||||
public synthetic static method internal$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method internal(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method internalInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method internalInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
synthetic static method private$A__TestKt$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
private final static method private$A__TestKt(p0: java.lang.String): void
|
||||
synthetic static method privateInline$A__TestKt$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
private final static method privateInline$A__TestKt(p0: java.lang.String, p1: int): void
|
||||
public synthetic static method public$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method public(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publicInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method publicInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
public synthetic static method published$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method published(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publishedInline$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method publishedInline(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// WITH_RUNTIME
|
||||
// !INHERIT_MULTIFILE_PARTS
|
||||
// FILE: test.kt
|
||||
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("A")
|
||||
|
||||
private fun private(x: String = "") {}
|
||||
|
||||
private inline fun privateInline(x: String, y: Int = 0) {}
|
||||
|
||||
internal fun internal(x: String = "") {}
|
||||
|
||||
internal inline fun internalInline(x: String, y: Int = 0) {}
|
||||
|
||||
@PublishedApi
|
||||
internal fun published(x: String = "") {}
|
||||
|
||||
@PublishedApi
|
||||
internal fun publishedInline(x: String = "") {}
|
||||
|
||||
public fun public(x: String = "") {}
|
||||
|
||||
public inline fun publicInline(x: String, y: Int = 0) {}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
@kotlin.Metadata
|
||||
public final class A {
|
||||
// source: 'test.kt'
|
||||
private method <init>(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
class A__TestKt {
|
||||
// source: 'test.kt'
|
||||
public method <init>(): void
|
||||
public synthetic static method internal$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method internal(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method internalInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method internalInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
synthetic static method private$A__TestKt$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
private final static method private$A__TestKt(p0: java.lang.String): void
|
||||
synthetic static method privateInline$A__TestKt$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
private final static method privateInline$A__TestKt(p0: java.lang.String, p1: int): void
|
||||
public synthetic static method public$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method public(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publicInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method publicInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
public synthetic static method published$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method published(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publishedInline$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method publishedInline(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
@kotlin.Metadata
|
||||
public final class A {
|
||||
// source: 'test.kt'
|
||||
public synthetic static method internal$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method internal(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method internalInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method internalInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
synthetic static method private$A__TestKt$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
synthetic static method privateInline$A__TestKt$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public synthetic static method public$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method public(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publicInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method publicInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
public synthetic static method published$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method published(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publishedInline$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method publishedInline(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
synthetic final class A__TestKt {
|
||||
// source: 'test.kt'
|
||||
public synthetic static method internal$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method internal(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method internalInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method internalInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
synthetic static method private$A__TestKt$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
private final static method private$A__TestKt(p0: java.lang.String): void
|
||||
synthetic static method privateInline$A__TestKt$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
private final static method privateInline$A__TestKt(p0: java.lang.String, p1: int): void
|
||||
public synthetic static method public$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static method public(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publicInline$default(p0: java.lang.String, p1: int, p2: int, p3: java.lang.Object): void
|
||||
public final static method publicInline(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
|
||||
public synthetic static method published$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method published(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
public synthetic static method publishedInline$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
public final static @kotlin.PublishedApi method publishedInline(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
|
||||
}
|
||||
Vendored
-7
@@ -1,7 +0,0 @@
|
||||
// WITH_RUNTIME
|
||||
// The remaining difference of JVM and JVM_IR here is reported at KT-41841.
|
||||
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("A")
|
||||
|
||||
private fun foo(x: String = "") {}
|
||||
Vendored
-11
@@ -1,11 +0,0 @@
|
||||
@kotlin.Metadata
|
||||
public final class A {
|
||||
// source: 'privateFunctionInMultifilePart.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
synthetic final class A__PrivateFunctionInMultifilePartKt {
|
||||
// source: 'privateFunctionInMultifilePart.kt'
|
||||
synthetic static method foo$A__PrivateFunctionInMultifilePartKt$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
private final static method foo$A__PrivateFunctionInMultifilePartKt(p0: java.lang.String): void
|
||||
}
|
||||
Vendored
-12
@@ -1,12 +0,0 @@
|
||||
@kotlin.Metadata
|
||||
public final class A {
|
||||
// source: 'privateFunctionInMultifilePart.kt'
|
||||
final static method foo$A__PrivateFunctionInMultifilePartKt$default(@org.jetbrains.annotations.Nullable p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
synthetic final class A__PrivateFunctionInMultifilePartKt {
|
||||
// source: 'privateFunctionInMultifilePart.kt'
|
||||
synthetic static method foo$A__PrivateFunctionInMultifilePartKt$default(p0: java.lang.String, p1: int, p2: java.lang.Object): void
|
||||
private final static method foo$A__PrivateFunctionInMultifilePartKt(p0: java.lang.String): void
|
||||
}
|
||||
Reference in New Issue
Block a user