Make inline+reified functions synthetic instead of private in bytecode
#KT-18563 Fixed
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
public final class InlineReified {
|
||||
public InlineReified() { /* compiled code */ }
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// a.InlineReified
|
||||
package a
|
||||
|
||||
class InlineReified {
|
||||
inline fun <reified T> foo(x: Any): T = x as T
|
||||
|
||||
inline val <reified T> T.bar: T?
|
||||
get() = null as T?
|
||||
|
||||
var <reified T> T.x: String
|
||||
inline get() = toString()
|
||||
inline set(value) {}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
class C {
|
||||
inline fun <reified T> foo(x: Any): T = x as T
|
||||
|
||||
inline val <reified T> bar: T?
|
||||
get() = null as T?
|
||||
set(value) {}
|
||||
|
||||
var <reified T> T.x: String
|
||||
inline get() = toString()
|
||||
inline set(value) {}
|
||||
}
|
||||
+2
-1
@@ -1,10 +1,11 @@
|
||||
@kotlin.Metadata
|
||||
public final class test/Foo {
|
||||
public final static method foo(): void
|
||||
public synthetic final static method inlineReified(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
synthetic final class test/Foo__InlineReifiedMultifileKt {
|
||||
public final static method foo(): void
|
||||
private final static method inlineReified(): void
|
||||
public synthetic final static method inlineReified(): void
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,10 +1,11 @@
|
||||
@kotlin.Metadata
|
||||
public final class test/Foo {
|
||||
public final static method foo(): void
|
||||
public synthetic final static @org.jetbrains.annotations.NotNull method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
synthetic final class test/Foo__InlineReifiedPropertyMultifileKt {
|
||||
public final static method foo(): void
|
||||
private final static method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
public synthetic final static @org.jetbrains.annotations.NotNull method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
public final class Foo {
|
||||
public method <init>(): void
|
||||
public final method bar(): void
|
||||
private final method baz(): void
|
||||
public synthetic final method baz(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineReifiedKt {
|
||||
public final static method bar(): void
|
||||
private final static method baz(): void
|
||||
public synthetic final static method baz(): void
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
@kotlin.Metadata
|
||||
public final class Foo {
|
||||
public method <init>(): void
|
||||
private final method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
public synthetic final @org.jetbrains.annotations.NotNull method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineReifiedPropertyKt {
|
||||
private final static method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
public synthetic final static @org.jetbrains.annotations.NotNull method getExtProp(p0: java.lang.Object): java.lang.String
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ public final class Foo {
|
||||
private final @org.jetbrains.annotations.Nullable method generic$$forInline(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final @org.jetbrains.annotations.Nullable method generic(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final @org.jetbrains.annotations.Nullable method generic(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final method genericWithReified(p0: java.lang.Object, p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final method genericWithReified(p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public synthetic final @org.jetbrains.annotations.Nullable method genericWithReified(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public synthetic final @org.jetbrains.annotations.Nullable method genericWithReified(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private synthetic final method privateInline(p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final @kotlin.internal.InlineOnly method shouldNotHaveSuffix(p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final @org.jetbrains.annotations.Nullable method simple$$forInline(@org.jetbrains.annotations.NotNull p0: kotlin.Unit, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
@@ -25,8 +25,8 @@ public final class SimpleNamedKt {
|
||||
private final static @org.jetbrains.annotations.Nullable method generic$$forInline(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final static @org.jetbrains.annotations.Nullable method generic(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public final static @org.jetbrains.annotations.Nullable method generic(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final static method genericWithReified(p0: java.lang.Object, p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final static method genericWithReified(p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public synthetic final static @org.jetbrains.annotations.Nullable method genericWithReified(@org.jetbrains.annotations.NotNull p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
public synthetic final static @org.jetbrains.annotations.Nullable method genericWithReified(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private synthetic final static method privateInline(p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final static @kotlin.internal.InlineOnly method shouldNotHaveSuffix(p0: kotlin.coroutines.Continuation): java.lang.Object
|
||||
private final static @org.jetbrains.annotations.Nullable method simple$$forInline(@org.jetbrains.annotations.NotNull p0: kotlin.Unit, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
|
||||
|
||||
@@ -14,8 +14,8 @@ final class test/SamAdapterAndInlinedOneKt$sam$java_lang_Runnable$0 {
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class test/SamAdapterAndInlinedOneKt {
|
||||
private final static method makeRunnable(p0: kotlin.jvm.functions.Function0): java.lang.Runnable
|
||||
public synthetic final static @org.jetbrains.annotations.NotNull method makeRunnable(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): java.lang.Runnable
|
||||
public final static @org.jetbrains.annotations.NotNull method makeRunnable2(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): java.lang.Runnable
|
||||
public final static @org.jetbrains.annotations.NotNull method noInline(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): java.lang.Runnable
|
||||
public final static @org.jetbrains.annotations.NotNull method noInline2(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): java.lang.Runnable
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@kotlin.Metadata
|
||||
public class AbstractStuff {
|
||||
public method <init>(): void
|
||||
private final method hello(p0: java.lang.Object, p1: COROUTINES_PACKAGE.Continuation): java.lang.Object
|
||||
public synthetic final @org.jetbrains.annotations.Nullable method hello(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: COROUTINES_PACKAGE.Continuation): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
class MyClass() {
|
||||
inline fun <reified T> test(s: String = "") {}
|
||||
}
|
||||
|
||||
// TESTED_OBJECT_KIND: function
|
||||
// TESTED_OBJECTS: MyClass, test$default
|
||||
// FLAGS: ACC_STATIC, ACC_SYNTHETIC
|
||||
// FLAGS: ACC_PUBLIC, ACC_STATIC, ACC_SYNTHETIC
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
class MyClass {
|
||||
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||
@kotlin.internal.InlineOnly
|
||||
inline fun test(s: String) {}
|
||||
}
|
||||
|
||||
// TESTED_OBJECT_KIND: function
|
||||
// TESTED_OBJECTS: MyClass, test
|
||||
// FLAGS: ACC_PRIVATE, ACC_FINAL
|
||||
Reference in New Issue
Block a user