[FIR] Support resolve of local typealiases

This commit is contained in:
Dmitriy Novozhilov
2021-04-01 14:10:47 +03:00
committed by TeamCityServer
parent 3cb17ac2f0
commit 66668b2294
19 changed files with 62 additions and 43 deletions
@@ -10,7 +10,7 @@ private fun <E> foobar() = {
fun a() = A<E, X, Y, Z>()
}
typealias LocalAlias<W> = A<<!UNRESOLVED_REFERENCE!>E<!>, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, <!UNRESOLVED_REFERENCE!>W<!>>
typealias LocalAlias<W> = A<E, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, W>
}
class Derived : LocalOuter<Double, Short>() {
@@ -27,7 +27,7 @@ private fun noParameters() = {
fun a() = A<Any, X, Y, Z>()
}
typealias LocalAlias2<W> = A<<!UNRESOLVED_REFERENCE!>Any<!>, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, <!UNRESOLVED_REFERENCE!>W<!>>
typealias LocalAlias2<W> = A<Any, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, W>
}
class Derived2 : LocalOuter2<Double, Short>() {
@@ -12,7 +12,7 @@ class Outer<T> {
fun a() = A<T, F, E, X, Y, Z>()
}
typealias LocalAlias<W> = A<<!UNRESOLVED_REFERENCE!>T<!>, <!UNRESOLVED_REFERENCE!>F<!>, <!UNRESOLVED_REFERENCE!>E<!>, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, <!UNRESOLVED_REFERENCE!>W<!>>
typealias LocalAlias<W> = A<T, F, E, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, W>
}
class Derived : LocalOuter<Double, Short>() {
@@ -29,7 +29,7 @@ class Outer<T> {
fun a() = A<T, F, Any, X, Y, Z>()
}
typealias LocalAlias2<W> = A<<!UNRESOLVED_REFERENCE!>T<!>, <!UNRESOLVED_REFERENCE!>F<!>, <!UNRESOLVED_REFERENCE!>Any<!>, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, <!UNRESOLVED_REFERENCE!>W<!>>
typealias LocalAlias2<W> = A<T, F, Any, <!UNRESOLVED_REFERENCE!>X<!>, <!UNRESOLVED_REFERENCE!>Y<!>, W>
}
class Derived2 : LocalOuter2<Double, Short>() {
@@ -17,13 +17,13 @@ class Outer<TO> {
fun <TF> foo() {
class Local<TL> {
typealias LTF = <!UNRESOLVED_REFERENCE!>List<<!UNRESOLVED_REFERENCE!>TF<!>><!>
typealias LTL = <!UNRESOLVED_REFERENCE!>List<<!UNRESOLVED_REFERENCE!>TL<!>><!>
typealias LTF = List<TF>
typealias LTL = List<<!UNRESOLVED_REFERENCE!>TL<!>>
}
fun <TLF> localfun() =
object {
typealias LTF = List<<!UNRESOLVED_REFERENCE!>TF<!>>
typealias LTLF = List<<!UNRESOLVED_REFERENCE!>TLF<!>>
typealias LTF = List<TF>
typealias LTLF = List<TLF>
}
}
@@ -3,5 +3,5 @@
fun outer() {
typealias Test1 = <!UNRESOLVED_REFERENCE!>Test1<!>
typealias Test2 = List<<!UNRESOLVED_REFERENCE!>Test2<!>>
typealias Test3<T> = List<<!UNRESOLVED_REFERENCE!>Test3<<!UNRESOLVED_REFERENCE!>T<!>><!>>
}
typealias Test3<T> = List<<!UNRESOLVED_REFERENCE!>Test3<T><!>>
}
@@ -29,7 +29,7 @@ fun testWrong4(x: List<Any>) = x is <!NO_TYPE_ARGUMENTS_ON_RHS!>ReadableList<!>
fun <T> testLocal(x: Any) {
class C
typealias CA = C
typealias <!EXPOSED_TYPEALIAS_EXPANDED_TYPE!>CA<!> = C
if (x is C) {}
if (x is <!UNRESOLVED_REFERENCE!>CA<!>) {}
}