FIR: introduce diagnostic NESTED_CLASS_NOT_ALLOWED

This commit is contained in:
Tianyu Geng
2021-02-19 15:52:43 -08:00
committed by Mikhail Glukhikh
parent c5cabce2d5
commit 724ca1d3ee
39 changed files with 125 additions and 103 deletions
@@ -1,5 +1,5 @@
class Outer {
inner class Inner {
annotation class TestNestedAnnotation
annotation <!NESTED_CLASS_NOT_ALLOWED!>class TestNestedAnnotation<!>
}
}
}
@@ -1,5 +1,5 @@
class Outer {
inner class Inner {
enum class TestNestedEnum
<!NESTED_CLASS_NOT_ALLOWED!>enum class TestNestedEnum<!>
}
}
}
@@ -4,9 +4,9 @@ enum class Enum {
ENTRY_WITH_CLASS {
inner class TestInner
class TestNested
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
interface TestInterface
<!NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
object TestObject
@@ -4,9 +4,9 @@ enum class Enum {
ENTRY_WITH_CLASS {
inner class TestInner
class TestNested
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
interface TestInterface
<!NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
object TestObject
@@ -4,9 +4,9 @@ enum class Enum {
ENTRY_WITH_CLASS {
inner class TestInner
class TestNested
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
interface TestInterface
<!NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
object TestObject
@@ -1,5 +1,5 @@
class Outer {
inner class Inner {
interface TestNestedInterface
<!NESTED_CLASS_NOT_ALLOWED!>interface TestNestedInterface<!>
}
}
}
@@ -1,26 +0,0 @@
// !LANGUAGE: +NestedClassesInEnumEntryShouldBeInner
class A {
inner class B {
class C
}
fun foo() {
class B {
class C
}
}
}
fun foo() {
class B {
class C
}
}
enum class E {
E1 {
class D
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +NestedClassesInEnumEntryShouldBeInner
class A {
@@ -2,25 +2,25 @@
class A {
inner class B {
class C
<!NESTED_CLASS_NOT_ALLOWED!>class C<!>
}
fun foo() {
class B {
class C
<!NESTED_CLASS_NOT_ALLOWED!>class C<!>
}
}
}
fun foo() {
class B {
class C
<!NESTED_CLASS_NOT_ALLOWED!>class C<!>
}
}
enum class E {
E1 {
class D
<!NESTED_CLASS_NOT_ALLOWED!>class D<!>
}
}
@@ -1,12 +1,12 @@
// SKIP_TXT
class Outer {
inner class Inner1 {
object Obj1
<!NESTED_CLASS_NOT_ALLOWED!>object Obj1<!>
companion object Obj2
companion <!NESTED_CLASS_NOT_ALLOWED!>object Obj2<!>
inner class Inner2 {
object Obj3
<!NESTED_CLASS_NOT_ALLOWED!>object Obj3<!>
}
}
}