Allow resolve class declarations in class objects
Use INACCESSIBLE_OUTER_CLASS_EXPRESSION error for marking already resolved elements #KT-3261 Fixed
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
class Test {
|
||||
[`InnerAnnotation`InnerAnnotation]
|
||||
class object : StaticClass(), <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!><!MANY_CLASSES_IN_SUPERTYPE_LIST!>InnerClass<!>()<!> {
|
||||
|
||||
}
|
||||
|
||||
annotation class InnerAnnotation
|
||||
open class StaticClass
|
||||
|
||||
open inner class InnerClass
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
class Test {
|
||||
class object {
|
||||
fun test(<!UNUSED_PARAMETER!>t<!>: TestInner) = 42
|
||||
}
|
||||
|
||||
class TestStatic {
|
||||
fun test(<!UNUSED_PARAMETER!>t<!>: TestInner) = 42
|
||||
}
|
||||
|
||||
inner class TestInner
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
open class SomeClass<T>
|
||||
class TestSome<P> {
|
||||
class object : SomeClass<<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>P<!>>() {
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
class object : <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>InnerClass()<!> {
|
||||
val a = object: <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>InnerClass()<!> {
|
||||
}
|
||||
|
||||
fun more(): InnerClass {
|
||||
val b = <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>InnerClass()<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>testVal<!> = <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>inClass<!>
|
||||
<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>foo()<!>
|
||||
|
||||
return b
|
||||
}
|
||||
}
|
||||
|
||||
val inClass = 12
|
||||
fun foo() {}
|
||||
|
||||
open inner class InnerClass
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
open class SomeClass<T>
|
||||
class TestSome<P> {
|
||||
object Some : SomeClass<<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>P<!>>() {
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
object Some : <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>InnerClass()<!> {
|
||||
val a = object: <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>InnerClass()<!> {
|
||||
}
|
||||
|
||||
fun more(): InnerClass {
|
||||
val b = <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>InnerClass()<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>testVal<!> = <!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>inClass<!>
|
||||
<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>foo()<!>
|
||||
|
||||
return b
|
||||
}
|
||||
}
|
||||
|
||||
val inClass = 12
|
||||
fun foo() {
|
||||
}
|
||||
|
||||
open inner class InnerClass
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
open class PackageTest
|
||||
|
||||
class MoreTest() {
|
||||
class object: PackageTest() {
|
||||
|
||||
}
|
||||
|
||||
object Some: PackageTest()
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
class Test {
|
||||
[ClassObjectAnnotation]
|
||||
[NestedAnnotation]
|
||||
class object {
|
||||
annotation class ClassObjectAnnotation
|
||||
}
|
||||
|
||||
annotation class NestedAnnotation
|
||||
}
|
||||
Reference in New Issue
Block a user