Recursive type alias expansion:

when resolving abbreviated type, do not check bounds
if the resulting type contains type aliases.
This commit is contained in:
Dmitry Petrov
2016-06-10 10:40:35 +03:00
parent 688c742802
commit 40dd36bcf6
6 changed files with 29 additions and 4 deletions
@@ -1,4 +1,11 @@
typealias R = <!RECURSIVE_TYPEALIAS_EXPANSION!>R<!>
typealias L = <!RECURSIVE_TYPEALIAS_EXPANSION!>List<L><!>
typealias A = <!RECURSIVE_TYPEALIAS_EXPANSION!>B<!>
typealias B = <!RECURSIVE_TYPEALIAS_EXPANSION!>A<!>
typealias F1 = <!RECURSIVE_TYPEALIAS_EXPANSION!>(Int) -> F2<!>
typealias F2 = <!RECURSIVE_TYPEALIAS_EXPANSION!>(F1) -> Int<!>
val x: <!RECURSIVE_TYPEALIAS_EXPANSION!>A<!> = TODO()
@@ -2,4 +2,8 @@ package
public typealias A = B
public typealias B = A
public typealias F1 = (kotlin.Int) -> F2
public typealias F2 = (F1) -> kotlin.Int
public typealias L = kotlin.collections.List<L>
public typealias R = R
public val x: [ERROR : Recursive type alias: A]