Drop erased class for inline class

This commit is contained in:
Dmitry Petrov
2018-09-04 12:55:04 +03:00
parent 4c7430e990
commit c094b3a5a2
18 changed files with 254 additions and 163 deletions
@@ -6,18 +6,6 @@ public final class Foo$Companion {
public final method funInCompanion(): void
}
@kotlin.Metadata
static class Foo$Erased {
method <init>(): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Foo
public static method constructor(p0: int): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public final static method equals-impl0(p0: int, p1: int): boolean
public static method hashCode(p0: int): int
public final static method inInlineClass(p0: int): void
public static @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
}
@kotlin.Metadata
public final class Foo {
public final static field Companion: Foo$Companion
@@ -26,9 +14,15 @@ public final class Foo {
inner class Foo$Companion
static method <clinit>(): void
public synthetic method <init>(p0: int): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Foo
public static method constructor(p0: int): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public method equals(p0: java.lang.Object): boolean
public final method getX(): int
public method hashCode(): int
public static method hashCode(p0: int): int
public final static method inInlineClass(p0: int): void
public method toString(): java.lang.String
public static @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
public final method unbox(): int
}
@@ -1,23 +1,18 @@
@kotlin.Metadata
static class Foo$Erased {
method <init>(): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Foo
public static method constructor(p0: int): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public final static method equals-impl0(p0: int, p1: int): boolean
public final static method getAsThis(p0: int): int
public final static method getProp(p0: int): int
public static method hashCode(p0: int): int
public static @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
}
@kotlin.Metadata
public final class Foo {
private final field x: int
public synthetic method <init>(p0: int): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Foo
public static method constructor(p0: int): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public method equals(p0: java.lang.Object): boolean
public final static method equals-impl0(p0: int, p1: int): boolean
public final static method getAsThis(p0: int): int
public final static method getProp(p0: int): int
public final method getX(): int
public method hashCode(): int
public static method hashCode(p0: int): int
public method toString(): java.lang.String
public static @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
public final method unbox(): int
}
@@ -1,22 +1,17 @@
@kotlin.Metadata
static class Foo$Erased {
method <init>(): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Foo
public static method constructor(p0: int): int
public static method constructor(p0: long): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public final static method equals-impl0(p0: int, p1: int): boolean
public static method hashCode(p0: int): int
public static @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
}
@kotlin.Metadata
public final class Foo {
private final field x: int
public synthetic method <init>(p0: int): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Foo
public static method constructor(p0: int): int
public static method constructor(p0: long): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public method equals(p0: java.lang.Object): boolean
public final static method equals-impl0(p0: int, p1: int): boolean
public final method getX(): int
public method hashCode(): int
public static method hashCode(p0: int): int
public method toString(): java.lang.String
public static @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
public final method unbox(): int
}
@@ -0,0 +1,80 @@
// !LANGUAGE: +InlineClasses
interface IFoo {
fun overridingFun()
fun String.overridingExtFun()
val overridingVal: Int
var overridingVar: Int
val String.overridingExtVal: Int
var String.overridingExtVar: Int
}
@Target(AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)
@Retention(AnnotationRetention.BINARY)
annotation class A
@Target(AnnotationTarget.PROPERTY_GETTER)
@Retention(AnnotationRetention.BINARY)
annotation class AGet
@Target(AnnotationTarget.PROPERTY_SETTER)
@Retention(AnnotationRetention.BINARY)
annotation class ASet
@Target(AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.BINARY)
annotation class ASetParam
@Target(AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.BINARY)
annotation class AReceiver
inline class Z(@get:AGet val x: Int) : IFoo {
constructor(y: Long) : this(y.toInt())
@A override fun overridingFun() {}
@A override fun @receiver:AReceiver String.overridingExtFun() {}
@A @get:AGet
override val overridingVal: Int
get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
override var overridingVar: Int
get() = x
set(v) {}
@A @get:AGet
override val @receiver:AReceiver String.overridingExtVal: Int
get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
override var @receiver:AReceiver String.overridingExtVar: Int
get() = x
set(v) {}
@A override fun toString(): String = x.toString()
@A fun nonOverridingFun() {}
@A fun @receiver:AReceiver String.nonOverridingExtFun() {}
@A @get:AGet
val nonOverridingVal: Int get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
var nonOverridingVar: Int
get() = x
set(v) {}
@A @get:AGet
val @receiver:AReceiver String.nonOverridingExtVal: Int
get() = x
@A @get:AGet @set:ASet @setparam:ASetParam
var @receiver:AReceiver String.nonOverridingExtVar: Int
get() = x
set(v) {}
}
@@ -0,0 +1,95 @@
@kotlin.annotation.Target
@kotlin.annotation.Retention
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.Metadata
public annotation class A
@kotlin.annotation.Target
@kotlin.annotation.Retention
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.Metadata
public annotation class AGet
@kotlin.annotation.Target
@kotlin.annotation.Retention
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.Metadata
public annotation class AReceiver
@kotlin.annotation.Target
@kotlin.annotation.Retention
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.Metadata
public annotation class ASet
@kotlin.annotation.Target
@kotlin.annotation.Retention
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.Metadata
public annotation class ASetParam
@kotlin.Metadata
public interface IFoo {
public abstract method getOverridingExtVal(@org.jetbrains.annotations.NotNull p0: java.lang.String): int
public abstract method getOverridingExtVar(@org.jetbrains.annotations.NotNull p0: java.lang.String): int
public abstract method getOverridingVal(): int
public abstract method getOverridingVar(): int
public abstract method overridingExtFun(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
public abstract method overridingFun(): void
public abstract method setOverridingExtVar(@org.jetbrains.annotations.NotNull p0: java.lang.String, p1: int): void
public abstract method setOverridingVar(p0: int): void
}
@kotlin.Metadata
public final class Z {
private final field x: int
public synthetic method <init>(p0: int): void
public final static @org.jetbrains.annotations.NotNull method box(p0: int): Z
public static method constructor(p0: int): int
public static method constructor(p0: long): int
public static method equals(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public method equals(p0: java.lang.Object): boolean
public final static @AGet method getNonOverridingExtVal(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String): int
public final static @AGet method getNonOverridingExtVar(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String): int
public final static @AGet method getNonOverridingVal(p0: int): int
public final static @AGet method getNonOverridingVar(p0: int): int
public @AGet method getOverridingExtVal(@AReceiver @org.jetbrains.annotations.NotNull p0: java.lang.String): int
public static @AGet method getOverridingExtVal(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String): int
public @AGet method getOverridingExtVar(@AReceiver @org.jetbrains.annotations.NotNull p0: java.lang.String): int
public static @AGet method getOverridingExtVar(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String): int
public @AGet method getOverridingVal(): int
public static @AGet method getOverridingVal(p0: int): int
public @AGet method getOverridingVar(): int
public static @AGet method getOverridingVar(p0: int): int
public final @AGet method getX(): int
public method hashCode(): int
public static method hashCode(p0: int): int
public final static @A method nonOverridingExtFun(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String): void
public synthetic deprecated static @A method nonOverridingExtVal$annotations(p0: java.lang.String): void
public synthetic deprecated static @A method nonOverridingExtVar$annotations(p0: java.lang.String): void
public final static @A method nonOverridingFun(p0: int): void
public synthetic deprecated static @A method nonOverridingVal$annotations(): void
public synthetic deprecated static @A method nonOverridingVar$annotations(): void
public @A method overridingExtFun(@AReceiver @org.jetbrains.annotations.NotNull p0: java.lang.String): void
public static @A method overridingExtFun(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String): void
public synthetic deprecated static @A method overridingExtVal$annotations(p0: java.lang.String): void
public synthetic deprecated static @A method overridingExtVar$annotations(p0: java.lang.String): void
public @A method overridingFun(): void
public static @A method overridingFun(p0: int): void
public synthetic deprecated static @A method overridingVal$annotations(): void
public synthetic deprecated static @A method overridingVar$annotations(): void
public final static @ASet method setNonOverridingExtVar(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String, @ASetParam p2: int): void
public final static @ASet method setNonOverridingVar(p0: int, @ASetParam p1: int): void
public @ASet method setOverridingExtVar(@AReceiver @org.jetbrains.annotations.NotNull p0: java.lang.String, @ASetParam p1: int): void
public static @ASet method setOverridingExtVar(p0: int, @AReceiver @org.jetbrains.annotations.NotNull p1: java.lang.String, @ASetParam p2: int): void
public @ASet method setOverridingVar(@ASetParam p0: int): void
public static @ASet method setOverridingVar(p0: int, @ASetParam p1: int): void
public @A @org.jetbrains.annotations.NotNull method toString(): java.lang.String
public static @A @org.jetbrains.annotations.NotNull method toString(p0: int): java.lang.String
public final method unbox(): int
}
@@ -3,27 +3,21 @@ public interface A {
public abstract method foo(p0: java.lang.Object): void
}
@kotlin.Metadata
static class Foo$Erased {
method <init>(): void
public final static @org.jetbrains.annotations.NotNull method box(p0: long): Foo
public static method constructor(p0: long): long
public static method equals(p0: long, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public final static method equals-impl0(p0: long, p1: long): boolean
public static method foo-1e4ch6lh(p0: long, p1: long): void
public static method hashCode(p0: long): int
public static @org.jetbrains.annotations.NotNull method toString(p0: long): java.lang.String
}
@kotlin.Metadata
public final class Foo {
private final field x: long
public synthetic method <init>(p0: long): void
public final static @org.jetbrains.annotations.NotNull method box(p0: long): Foo
public static method constructor(p0: long): long
public method equals(p0: java.lang.Object): boolean
public static method equals(p0: long, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public synthetic method foo(p0: java.lang.Object): void
public method foo-1e4ch6lh(p0: long): void
public static method foo-1e4ch6lh(p0: long, p1: long): void
public final method getX(): long
public method hashCode(): int
public static method hashCode(p0: long): int
public method toString(): java.lang.String
public static @org.jetbrains.annotations.NotNull method toString(p0: long): java.lang.String
public final method unbox(): long
}
@@ -1,24 +1,19 @@
@kotlin.Metadata
static class Foo$Erased {
method <init>(): void
public final static @org.jetbrains.annotations.NotNull method box(p0: long): Foo
public static method constructor(p0: long): long
public final static method empty(p0: long): void
public static method equals(p0: long, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public final static method equals-impl0(p0: long, p1: long): boolean
public final static method extension(p0: long, @org.jetbrains.annotations.NotNull p1: java.lang.Object, @org.jetbrains.annotations.NotNull p2: java.lang.String): void
public static method hashCode(p0: long): int
public final static method param(p0: long, p1: double): void
public static @org.jetbrains.annotations.NotNull method toString(p0: long): java.lang.String
}
@kotlin.Metadata
public final class Foo {
private final field l: long
public synthetic method <init>(p0: long): void
public final static @org.jetbrains.annotations.NotNull method box(p0: long): Foo
public static method constructor(p0: long): long
public final static method empty(p0: long): void
public method equals(p0: java.lang.Object): boolean
public static method equals(p0: long, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
public final static method equals-impl0(p0: long, p1: long): boolean
public final static method extension(p0: long, @org.jetbrains.annotations.NotNull p1: java.lang.Object, @org.jetbrains.annotations.NotNull p2: java.lang.String): void
public final method getL(): long
public method hashCode(): int
public static method hashCode(p0: long): int
public final static method param(p0: long, p1: double): void
public method toString(): java.lang.String
public static @org.jetbrains.annotations.NotNull method toString(p0: long): java.lang.String
public final method unbox(): long
}