JVM IR: Fix visibility of protected/private functions with reified types

This commit is contained in:
Steven Schäfer
2021-01-06 17:05:35 +01:00
committed by Alexander Udalov
parent dad10e94aa
commit 98a9e142e8
11 changed files with 129 additions and 24 deletions
@@ -0,0 +1,16 @@
internal inline val <reified Z> Z.internalExtProp: String
get() = "1"
private inline val <reified Z> Z.privateExtProp: String
get() = "2"
class Foo {
internal inline val <reified Z> Z.internalExtProp: String
get() = "3"
protected inline val <reified Z> Z.protectedExtProp: String
get() = "4"
private inline val <reified Z> Z.privateExtProp: String
get() = "5"
}
@@ -0,0 +1,15 @@
@kotlin.Metadata
public final class Foo {
// source: 'inlineReifiedPropertyVisibility.kt'
public method <init>(): void
public synthetic final method getInternalExtProp$test_module(p0: java.lang.Object): java.lang.String
private synthetic final method getPrivateExtProp(p0: java.lang.Object): java.lang.String
protected synthetic final method getProtectedExtProp(p0: java.lang.Object): java.lang.String
}
@kotlin.Metadata
public final class InlineReifiedPropertyVisibilityKt {
// source: 'inlineReifiedPropertyVisibility.kt'
public synthetic final static method getInternalExtProp(p0: java.lang.Object): java.lang.String
private synthetic final static method getPrivateExtProp(p0: java.lang.Object): java.lang.String
}
@@ -0,0 +1,8 @@
internal inline fun <reified T> f() {}
private inline fun <reified T> g() {}
class Foo {
internal inline fun <reified T> f() {}
protected inline fun <reified T> g() {}
private inline fun <reified T> h() {}
}
@@ -0,0 +1,15 @@
@kotlin.Metadata
public final class Foo {
// source: 'inlineReifiedVisibility.kt'
public method <init>(): void
public synthetic final method f$test_module(): void
protected synthetic final method g(): void
private synthetic final method h(): void
}
@kotlin.Metadata
public final class InlineReifiedVisibilityKt {
// source: 'inlineReifiedVisibility.kt'
public synthetic final static method f(): void
private synthetic final static method g(): void
}
@@ -0,0 +1,10 @@
class A {
inline suspend fun <reified T> publicFun() {}
internal inline suspend fun <reified T> internalFun() {}
protected inline suspend fun <reified T> protectedFun() {}
private inline suspend fun <reified T> privateFun() {}
}
inline suspend fun <reified T> publicFun() {}
internal inline suspend fun <reified T> internalFun() {}
private inline suspend fun <reified T> privateFun() {}
@@ -0,0 +1,17 @@
@kotlin.Metadata
public final class A {
// source: 'suspendInlineReified.kt'
public method <init>(): void
public synthetic final method internalFun$test_module(p0: java.lang.Object): java.lang.Object
private synthetic final method privateFun(p0: java.lang.Object): java.lang.Object
protected synthetic final method protectedFun(p0: java.lang.Object): java.lang.Object
public synthetic final method publicFun(p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
public final class SuspendInlineReifiedKt {
// source: 'suspendInlineReified.kt'
public synthetic final static method internalFun(p0: java.lang.Object): java.lang.Object
private synthetic final static method privateFun(p0: java.lang.Object): java.lang.Object
public synthetic final static method publicFun(p0: java.lang.Object): java.lang.Object
}
@@ -0,0 +1,17 @@
@kotlin.Metadata
public final class A {
// source: 'suspendInlineReified.kt'
public method <init>(): void
public synthetic final method internalFun$test_module(p0: kotlin.coroutines.Continuation): java.lang.Object
private synthetic final method privateFun(p0: kotlin.coroutines.Continuation): java.lang.Object
protected synthetic final method protectedFun(p0: kotlin.coroutines.Continuation): java.lang.Object
public synthetic final method publicFun(p0: kotlin.coroutines.Continuation): java.lang.Object
}
@kotlin.Metadata
public final class SuspendInlineReifiedKt {
// source: 'suspendInlineReified.kt'
public synthetic final static method internalFun(p0: kotlin.coroutines.Continuation): java.lang.Object
private synthetic final static method privateFun(p0: kotlin.coroutines.Continuation): java.lang.Object
public synthetic final static method publicFun(p0: kotlin.coroutines.Continuation): java.lang.Object
}