Treat nested class of header class as header
Note that the quick fix to implement header class works incorrectly when that class has nested classes at the moment; this should be fixed separately #KT-15494 Fixed #KT-18573 Fixed
This commit is contained in:
+5
-5
@@ -2,11 +2,11 @@
|
||||
package
|
||||
|
||||
public final header enum class Bar : kotlin.Enum<Bar> {
|
||||
enum entry X
|
||||
header enum entry X
|
||||
|
||||
enum entry Y
|
||||
header enum entry Y
|
||||
|
||||
enum entry Z
|
||||
header enum entry Z
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
@@ -22,9 +22,9 @@ public final header enum class Bar : kotlin.Enum<Bar> {
|
||||
}
|
||||
|
||||
public final header enum class Foo : kotlin.Enum<Foo> {
|
||||
enum entry A
|
||||
header enum entry A
|
||||
|
||||
enum entry B
|
||||
header enum entry B
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
package
|
||||
|
||||
public final header enum class En : kotlin.Enum<En> {
|
||||
enum entry E1
|
||||
header enum entry E1
|
||||
|
||||
enum entry E2
|
||||
header enum entry E2
|
||||
|
||||
private constructor En(/*0*/ x: kotlin.Int)
|
||||
private constructor En(/*0*/ s: kotlin.String)
|
||||
@@ -21,7 +21,7 @@ public final header enum class En : kotlin.Enum<En> {
|
||||
}
|
||||
|
||||
public final header enum class En2 : kotlin.Enum<En2> {
|
||||
enum entry E1
|
||||
header enum entry E1
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
|
||||
+5
-5
@@ -2,11 +2,11 @@
|
||||
package
|
||||
|
||||
public final header enum class Bar : kotlin.Enum<Bar> {
|
||||
enum entry X
|
||||
header enum entry X
|
||||
|
||||
enum entry Y
|
||||
header enum entry Y
|
||||
|
||||
enum entry Z
|
||||
header enum entry Z
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
@@ -22,9 +22,9 @@ public final header enum class Bar : kotlin.Enum<Bar> {
|
||||
}
|
||||
|
||||
public final header enum class Foo : kotlin.Enum<Foo> {
|
||||
enum entry A
|
||||
header enum entry A
|
||||
|
||||
enum entry B
|
||||
header enum entry B
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
header enum class En {
|
||||
E1,
|
||||
<!HEADER_ENUM_ENTRY_WITH_BODY!>E2 {
|
||||
fun foo() = ""
|
||||
<!HEADER_DECLARATION_WITH_BODY!>fun foo()<!> = ""
|
||||
},<!>
|
||||
<!HEADER_ENUM_ENTRY_WITH_BODY!>E3 { };<!>
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,11 +1,11 @@
|
||||
package
|
||||
|
||||
public final header enum class En : kotlin.Enum<En> {
|
||||
enum entry E1
|
||||
header enum entry E1
|
||||
|
||||
enum entry E2
|
||||
header enum entry E2
|
||||
|
||||
enum entry E3
|
||||
header enum entry E3
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
package
|
||||
|
||||
public final header enum class Foo : kotlin.Enum<Foo> {
|
||||
enum entry ENTRY1
|
||||
header enum entry ENTRY1
|
||||
|
||||
enum entry ENTRY2
|
||||
header enum entry ENTRY2
|
||||
|
||||
enum entry ENTRY3
|
||||
header enum entry ENTRY3
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ public final header class Class {
|
||||
}
|
||||
|
||||
public final header enum class En : kotlin.Enum<En> {
|
||||
enum entry ENTRY
|
||||
header enum entry ENTRY
|
||||
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
|
||||
+21
-9
@@ -3,23 +3,29 @@
|
||||
// FILE: common.kt
|
||||
|
||||
header class OuterClass {
|
||||
header class NestedClass {
|
||||
header class DeepNested {
|
||||
header class Another
|
||||
class NestedClass {
|
||||
class DeepNested {
|
||||
class Another {
|
||||
fun f(s: String)
|
||||
val p: Int
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
header inner class InnerClass
|
||||
inner class InnerClass {
|
||||
fun f(x: Int)
|
||||
val p: String
|
||||
}
|
||||
|
||||
header companion object
|
||||
companion object
|
||||
}
|
||||
|
||||
header class OuterClassWithNamedCompanion {
|
||||
header companion object Factory
|
||||
companion object Factory
|
||||
}
|
||||
|
||||
header object OuterObject {
|
||||
header object NestedObject
|
||||
object NestedObject
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm(m1-common)
|
||||
@@ -28,11 +34,17 @@ header object OuterObject {
|
||||
impl class OuterClass {
|
||||
impl class NestedClass {
|
||||
impl class DeepNested {
|
||||
impl class Another
|
||||
impl class Another {
|
||||
impl fun f(s: String) {}
|
||||
impl val p: Int = 42
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl inner class InnerClass
|
||||
impl inner class InnerClass {
|
||||
impl fun f(x: Int) {}
|
||||
impl val p: String = ""
|
||||
}
|
||||
|
||||
impl companion object
|
||||
}
|
||||
|
||||
+8
@@ -15,7 +15,9 @@ public final header class OuterClass {
|
||||
|
||||
public final header inner class InnerClass {
|
||||
public constructor InnerClass()
|
||||
public header final val p: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final header fun f(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -34,7 +36,9 @@ public final header class OuterClass {
|
||||
|
||||
public final header class Another {
|
||||
public constructor Another()
|
||||
public header final val p: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final header fun f(/*0*/ s: kotlin.String): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -86,7 +90,9 @@ public final impl class OuterClass {
|
||||
|
||||
public final impl inner class InnerClass {
|
||||
public constructor InnerClass()
|
||||
public impl final val p: kotlin.String = ""
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final impl fun f(/*0*/ x: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -105,7 +111,9 @@ public final impl class OuterClass {
|
||||
|
||||
public final impl class Another {
|
||||
public constructor Another()
|
||||
public impl final val p: kotlin.Int = 42
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final impl fun f(/*0*/ s: kotlin.String): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
header class B {
|
||||
class N {
|
||||
<!HEADER_DECLARATION_WITH_BODY, JVM:HEADER_DECLARATION_WITH_BODY!>fun body()<!> {}
|
||||
<!WRONG_MODIFIER_TARGET, JVM:WRONG_MODIFIER_TARGET!>header<!> fun extraHeader()
|
||||
}
|
||||
}
|
||||
|
||||
header class C {
|
||||
<!WRONG_MODIFIER_TARGET, JVM:WRONG_MODIFIER_TARGET!>header<!> class N
|
||||
<!WRONG_MODIFIER_TARGET, JVM:WRONG_MODIFIER_TARGET!>header<!> enum class E
|
||||
<!WRONG_MODIFIER_TARGET, JVM:WRONG_MODIFIER_TARGET!>header<!> inner class I
|
||||
}
|
||||
|
||||
header class D {
|
||||
class N
|
||||
}
|
||||
|
||||
// MODULE: m1-jvm(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
impl class B {
|
||||
impl class N {
|
||||
impl fun body() {}
|
||||
impl fun extraHeader() {}
|
||||
}
|
||||
}
|
||||
|
||||
impl class C {
|
||||
impl class N
|
||||
impl enum class E
|
||||
impl inner class I
|
||||
}
|
||||
|
||||
impl class <!HEADER_CLASS_MEMBERS_ARE_NOT_IMPLEMENTED!>D<!>
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
// -- Module: <m1-common> --
|
||||
package
|
||||
|
||||
public final header class B {
|
||||
public constructor B()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final header class N {
|
||||
public constructor N()
|
||||
public final header fun body(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final header fun extraHeader(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final header class C {
|
||||
public constructor C()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final header enum class E : kotlin.Enum<C.E> {
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: C.E): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): C.E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<C.E>
|
||||
}
|
||||
|
||||
public final header inner class I {
|
||||
public constructor I()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final header class N {
|
||||
public constructor N()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final header class D {
|
||||
public constructor D()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final header class N {
|
||||
public constructor N()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m1-jvm> --
|
||||
package
|
||||
|
||||
public final impl class B {
|
||||
public constructor B()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final impl class N {
|
||||
public constructor N()
|
||||
public final impl fun body(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final impl fun extraHeader(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final impl class C {
|
||||
public constructor C()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final impl enum class E : kotlin.Enum<C.E> {
|
||||
private constructor E()
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: C.E): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<C.E!>!
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): C.E
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<C.E>
|
||||
}
|
||||
|
||||
public final impl inner class I {
|
||||
public constructor I()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final impl class N {
|
||||
public constructor N()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final impl class D {
|
||||
public constructor D()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
<!WRONG_MODIFIER_TARGET!>header<!> typealias Foo = String
|
||||
|
||||
class Outer <!WRONG_MODIFIER_TARGET!>header<!> constructor() {
|
||||
header class Nested
|
||||
<!WRONG_MODIFIER_TARGET!>header<!> class Nested
|
||||
|
||||
<!WRONG_MODIFIER_TARGET!>header<!> init {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user