Support generic underlying type of inline class
Use upper bound in JVM representation. #KT-32162
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
// CHECK_BYTECODE_LISTING
|
||||
// LANGUAGE: -JvmInlineValueClasses, +GenericInlineClassParameter
|
||||
|
||||
inline class ICAny<T>(val value: T)
|
||||
|
||||
fun box(): String = ICAny("OK").value
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class ICAny {
|
||||
// source: 'simple.kt'
|
||||
private final field value: java.lang.Object
|
||||
private synthetic method <init>(p0: java.lang.Object): void
|
||||
public synthetic final static method box-impl(p0: java.lang.Object): ICAny
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(p0: java.lang.Object): java.lang.Object
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public final method getValue(): java.lang.Object
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.lang.Object): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.lang.Object): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class SimpleKt {
|
||||
// source: 'simple.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// CHECK_BYTECODE_LISTING
|
||||
// LANGUAGE: -JvmInlineValueClasses, +GenericInlineClassParameter
|
||||
|
||||
inline class ICString<T: String>(val value: T)
|
||||
|
||||
fun box(): String = ICString("OK").value
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class ICString {
|
||||
// source: 'upperBound.kt'
|
||||
private final @org.jetbrains.annotations.NotNull field value: java.lang.String
|
||||
private synthetic method <init>(p0: java.lang.String): void
|
||||
public synthetic final static method box-impl(p0: java.lang.String): ICString
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: java.lang.String, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.String
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.lang.String): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.lang.String): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.lang.String
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class UpperBoundKt {
|
||||
// source: 'upperBound.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
Reference in New Issue
Block a user