JVM JVM_IR hide sealed class constructors

This commit is contained in:
Dmitry Petrov
2021-01-22 15:31:56 +03:00
parent ca3bb02897
commit 708e6914bd
27 changed files with 555 additions and 97 deletions
@@ -0,0 +1,3 @@
annotation class Ann
sealed class Sealed @Ann constructor(@Ann val x: String)
@@ -0,0 +1,14 @@
@java.lang.annotation.Retention
@kotlin.Metadata
public annotation class Ann {
// source: 'annotationsOnSealedConstructor.kt'
}
@kotlin.Metadata
public abstract class Sealed {
// source: 'annotationsOnSealedConstructor.kt'
private final @org.jetbrains.annotations.NotNull field x: java.lang.String
private @Ann method <init>(@Ann p0: java.lang.String): void
public synthetic method <init>(p0: java.lang.String, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final @org.jetbrains.annotations.NotNull method getX(): java.lang.String
}
@@ -0,0 +1,14 @@
// !LANGUAGE: -AllowSealedInheritorsInDifferentFilesOfSamePackage
sealed class TestNoSubclasses(val x: Int)
sealed class TestSubclassAfter(val x: Int)
class X1 : TestSubclassAfter(42)
sealed class TestNoSubclassesAllDefaults(val x: Int = 0)
sealed class TestSubclassAfterAllDefaults(val x: Int = 0)
class X3 : TestSubclassAfterAllDefaults()
class X4: TestSubclassBefore(1)
sealed class TestSubclassBefore(val x: Int)
@@ -0,0 +1,64 @@
@kotlin.Metadata
public abstract class TestNoSubclasses {
// source: 'sealedClassConstructor_1_4.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestNoSubclassesAllDefaults {
// source: 'sealedClassConstructor_1_4.kt'
private final field x: int
private method <init>(p0: int): void
synthetic method <init>(p0: int, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestSubclassAfter {
// source: 'sealedClassConstructor_1_4.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestSubclassAfterAllDefaults {
// source: 'sealedClassConstructor_1_4.kt'
private final field x: int
private method <init>(p0: int): void
synthetic method <init>(p0: int, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestSubclassBefore {
// source: 'sealedClassConstructor_1_4.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public final class X1 {
// source: 'sealedClassConstructor_1_4.kt'
public method <init>(): void
}
@kotlin.Metadata
public final class X3 {
// source: 'sealedClassConstructor_1_4.kt'
public method <init>(): void
}
@kotlin.Metadata
public final class X4 {
// source: 'sealedClassConstructor_1_4.kt'
public method <init>(): void
}
@@ -0,0 +1,14 @@
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
sealed class TestNoSubclasses(val x: Int)
sealed class TestSubclassAfter(val x: Int)
class X1 : TestSubclassAfter(42)
sealed class TestNoSubclassesAllDefaults(val x: Int = 0)
sealed class TestSubclassAfterAllDefaults(val x: Int = 0)
class X3 : TestSubclassAfterAllDefaults()
class X4: TestSubclassBefore(1)
sealed class TestSubclassBefore(val x: Int)
@@ -0,0 +1,64 @@
@kotlin.Metadata
public abstract class TestNoSubclasses {
// source: 'sealedClassConstructor_1_5.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestNoSubclassesAllDefaults {
// source: 'sealedClassConstructor_1_5.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestSubclassAfter {
// source: 'sealedClassConstructor_1_5.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestSubclassAfterAllDefaults {
// source: 'sealedClassConstructor_1_5.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public abstract class TestSubclassBefore {
// source: 'sealedClassConstructor_1_5.kt'
private final field x: int
private method <init>(p0: int): void
public synthetic method <init>(p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void
public final method getX(): int
}
@kotlin.Metadata
public final class X1 {
// source: 'sealedClassConstructor_1_5.kt'
public method <init>(): void
}
@kotlin.Metadata
public final class X3 {
// source: 'sealedClassConstructor_1_5.kt'
public method <init>(): void
}
@kotlin.Metadata
public final class X4 {
// source: 'sealedClassConstructor_1_5.kt'
public method <init>(): void
}