IC: Forbid inner classes inside inline classes
#KT-43067 Fixed
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
inline class Z(val x: Int) {
|
||||
@Suppress("INNER_CLASS_INSIDE_INLINE_CLASS")
|
||||
inner class Inner(val y: Int) {
|
||||
val xx = x
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
inline class Z(val x: Int) {
|
||||
@Suppress("INNER_CLASS_INSIDE_INLINE_CLASS")
|
||||
inner class Inner(val z: Z) {
|
||||
val xx = x
|
||||
}
|
||||
|
||||
Vendored
+1
@@ -12,6 +12,7 @@ class Outer(val z1: Z) {
|
||||
}
|
||||
|
||||
inline class InlineOuter(val z1: Z) {
|
||||
@Suppress("INNER_CLASS_INSIDE_INLINE_CLASS")
|
||||
inner class Inner(val z2: Z) {
|
||||
val test = "$z1 $z2"
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
inline class Foo(val x: Int) {
|
||||
inner class InnerC
|
||||
inner object InnerO
|
||||
inner interface InnerI
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
inline class Foo(val x: Int) {
|
||||
<!INNER_CLASS_INSIDE_INLINE_CLASS!>inner<!> class InnerC
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> object InnerO
|
||||
<!WRONG_MODIFIER_TARGET!>inner<!> interface InnerI
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package
|
||||
|
||||
public final inline class Foo {
|
||||
public constructor Foo(/*0*/ x: kotlin.Int)
|
||||
public final val x: kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
|
||||
|
||||
public final inner class InnerC {
|
||||
public constructor InnerC()
|
||||
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 interface InnerI {
|
||||
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 object InnerO {
|
||||
private constructor InnerO()
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user