[Analysis API] rework containing declaration provider

now it should work for non-source declarations
This commit is contained in:
Ilya Kirillov
2022-10-14 15:31:01 +02:00
committed by teamcity
parent 2cf8f75a90
commit 97df0a0902
25 changed files with 807 additions and 118 deletions
@@ -0,0 +1,26 @@
class A {
class B {
class C {
}
}
}
interface D {
inner class E {
enum class F {
}
}
}
enum class G {
H, I
}
fun foo() {
class D {
}
}
@@ -0,0 +1,17 @@
class X {
fun foo() {
class U {
inner class K {
inner class D {
fun check() {
class F {
inner class L
}
}
}
}
class T
}
}
}
@@ -0,0 +1,23 @@
enum class A {
B, C;
fun d(){}
val e: Int = 10
}
class X {
private Y {
enum class U {
UB, UC;
fun ud(){}
val ue: Int = 10
}
}
class P {
enum class W {
WB, WC;
fun wd(){}
val we: Int = 10
}
}
}
@@ -0,0 +1,40 @@
fun a(){}
private fun b() {}
class A {
private fun a() {}
class B {
private fun b() {}
class C {
private fun c() {}
}
}
}
interface D {
private fun d() {}
inner class E {
private fun e() {}
enum class F {
private fun f() {}
}
}
}
enum class G {
H, I;
private fun g() {}
}
fun foo() {
private fun fooA() {}
class FooI {
private fun m() {}
}
}
@@ -0,0 +1,27 @@
fun x() {
val xProperty = 10
fun xFunction() = 11
typealias xTypealias = 10
class XClass<XT> {}
enum class XEnum {
X_ENUM_ENTRY;
fun xEnumMember(){}
}
class Y <YT> {
val yProperty = 10
fun yFunction() = 11
typealias yTypealias = 10
class YClass<YTT> {}
enum class YEnum {
Y_ENUM_ENTRY;
fun yEnumMember(){}
}
init {
println("init block in local class")
}
}
}
@@ -0,0 +1,12 @@
typealias X<XT> = List<X>
class A {
typealias Y<YS, YV> = Map<YS, YV>
class B {
typealias Q<QS, QV> = MutableMap<QS, QV>
}
}
fun foo() {
typealias L<LS, LV> = Map<LS, LV>
}