Star projection information preserved in substitutions

#KT-6700 Fixed
This commit is contained in:
Andrey Breslav
2015-01-30 19:53:04 +03:00
parent da639039bd
commit fecf6f9fdf
38 changed files with 412 additions and 216 deletions
@@ -1,9 +1,9 @@
In<T?>
in Int. lower: In<Any?>; upper: In<Int?>; substitution: In<Int?>
out Int. lower: In<Int?>; upper: In<Nothing?>; substitution: In<out Any?>
out Int. lower: In<Int?>; upper: In<Nothing?>; substitution: In<*>
Out<T?>
in Int. lower: Out<Int?>; upper: Out<Any?>; substitution: Out<Any?>
in Int. lower: Out<Int?>; upper: Out<Any?>; substitution: Out<*>
out Int. lower: Out<Nothing?>; upper: Out<Int?>; substitution: Out<Int?>
Inv<T?>
@@ -20,10 +20,10 @@ Inv<out T?>
In<In<T?>>
in Int. lower: In<In<Int?>>; upper: In<In<Any?>>; substitution: In<In<Int?>>
out Int. lower: In<In<Nothing?>>; upper: In<In<Int?>>; substitution: In<In<out Any?>>
out Int. lower: In<In<Nothing?>>; upper: In<In<Int?>>; substitution: In<In<*>>
In<Out<T?>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int?>>; substitution: In<Out<Any?>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int?>>; substitution: In<Out<*>>
out Int. lower: In<Out<Int?>>; upper: In<Out<Nothing?>>; substitution: In<Out<Int?>>
In<Inv<T?>>
@@ -40,10 +40,10 @@ In<Inv<out T?>>
Out<In<T?>>
in Int. lower: Out<In<Any?>>; upper: Out<In<Int?>>; substitution: Out<In<Int?>>
out Int. lower: Out<In<Int?>>; upper: Out<In<Nothing?>>; substitution: Out<In<out Any?>>
out Int. lower: Out<In<Int?>>; upper: Out<In<Nothing?>>; substitution: Out<In<*>>
Out<Out<T?>>
in Int. lower: Out<Out<Int?>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
in Int. lower: Out<Out<Int?>>; upper: Out<Out<Any?>>; substitution: Out<Out<*>>
out Int. lower: Out<Out<Nothing?>>; upper: Out<Out<Int?>>; substitution: Out<Out<Int?>>
Out<Inv<T?>>
@@ -60,10 +60,10 @@ Out<Inv<out T?>>
Inv<In<T?>>
in Int. lower: Nothing; upper: Inv<out In<Int?>>; substitution: Inv<In<Int?>>
out Int. lower: Nothing; upper: Inv<out In<Nothing?>>; substitution: Inv<In<out Any?>>
out Int. lower: Nothing; upper: Inv<out In<Nothing?>>; substitution: Inv<In<*>>
Inv<Out<T?>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<*>>
out Int. lower: Nothing; upper: Inv<out Out<Int?>>; substitution: Inv<Out<Int?>>
Inv<Inv<T?>>
@@ -80,10 +80,10 @@ Inv<Inv<out T?>>
Inv<in In<T?>>
in Int. lower: Inv<in In<Int?>>; upper: Inv<in In<Any?>>; substitution: Inv<in In<Int?>>
out Int. lower: Inv<in In<Nothing?>>; upper: Inv<in In<Int?>>; substitution: Inv<in In<out Any?>>
out Int. lower: Inv<in In<Nothing?>>; upper: Inv<in In<Int?>>; substitution: Inv<in In<*>>
Inv<in Out<T?>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int?>>; substitution: Inv<in Out<Any?>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int?>>; substitution: Inv<in Out<*>>
out Int. lower: Inv<in Out<Int?>>; upper: Inv<in Out<Nothing?>>; substitution: Inv<in Out<Int?>>
Inv<in Inv<T?>>
@@ -100,10 +100,10 @@ Inv<in Inv<out T?>>
Inv<out In<T?>>
in Int. lower: Inv<out In<Any?>>; upper: Inv<out In<Int?>>; substitution: Inv<out In<Int?>>
out Int. lower: Inv<out In<Int?>>; upper: Inv<out In<Nothing?>>; substitution: Inv<out In<out Any?>>
out Int. lower: Inv<out In<Int?>>; upper: Inv<out In<Nothing?>>; substitution: Inv<out In<*>>
Inv<out Out<T?>>
in Int. lower: Inv<out Out<Int?>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<Any?>>
in Int. lower: Inv<out Out<Int?>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<*>>
out Int. lower: Inv<out Out<Nothing?>>; upper: Inv<out Out<Int?>>; substitution: Inv<out Out<Int?>>
Inv<out Inv<T?>>
@@ -119,19 +119,19 @@ Inv<out Inv<out T?>>
out Int. lower: Inv<out Inv<out Nothing?>>; upper: Inv<out Inv<out Int?>>; substitution: Inv<out Inv<out Int?>>
In<Inv<Out<T?>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<Any?>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<*>>>
out Int. lower: In<Inv<out Out<Int?>>>; upper: In<Nothing>; substitution: In<Inv<Out<Int?>>>
Out<Out<Out<T?>>>
in Int. lower: Out<Out<Out<Int?>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<Any?>>>
in Int. lower: Out<Out<Out<Int?>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<*>>>
out Int. lower: Out<Out<Out<Nothing?>>>; upper: Out<Out<Out<Int?>>>; substitution: Out<Out<Out<Int?>>>
Inv<Inv<in In<T?>>>
in Int. lower: Nothing; upper: Inv<out Inv<in In<Any?>>>; substitution: Inv<Inv<in In<Int?>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int?>>>; substitution: Inv<Inv<in In<out Any?>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int?>>>; substitution: Inv<Inv<in In<*>>>
Inv<out Inv<Out<T?>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<Any?>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<*>>>
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int?>>>; substitution: Inv<out Inv<Out<Int?>>>
Inv<in Inv<Inv<T?>>>
@@ -140,10 +140,10 @@ Inv<in Inv<Inv<T?>>>
Out<Inv<In<T?>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out In<Int?>>>; substitution: Out<Inv<In<Int?>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing?>>>; substitution: Out<Inv<In<out Any?>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing?>>>; substitution: Out<Inv<In<*>>>
Inv<out Out<Out<T?>>>
in Int. lower: Inv<out Out<Out<Int?>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<Any?>>>
in Int. lower: Inv<out Out<Out<Int?>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<*>>>
out Int. lower: Inv<out Out<Out<Nothing?>>>; upper: Inv<out Out<Out<Int?>>>; substitution: Inv<out Out<Out<Int?>>>
Out<In<Inv<T?>>>
@@ -151,7 +151,7 @@ Out<In<Inv<T?>>>
out Int. lower: Out<In<Inv<out Int?>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<out Int?>>>
Inv<out In<Out<T?>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int?>>>; substitution: Inv<out In<Out<Any?>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int?>>>; substitution: Inv<out In<Out<*>>>
out Int. lower: Inv<out In<Out<Int?>>>; upper: Inv<out In<Out<Nothing?>>>; substitution: Inv<out In<Out<Int?>>>
In<Out<Inv<T?>>>
@@ -184,7 +184,7 @@ Inv<out Out<Inv<out Inv<in T?>>>>
Out<Inv<out Inv<out In<T?>>>>
in Int. lower: Out<Inv<out Inv<out In<Any?>>>>; upper: Out<Inv<out Inv<out In<Int?>>>>; substitution: Out<Inv<out Inv<out In<Int?>>>>
out Int. lower: Out<Inv<out Inv<out In<Int?>>>>; upper: Out<Inv<out Inv<out In<Nothing?>>>>; substitution: Out<Inv<out Inv<out In<out Any?>>>>
out Int. lower: Out<Inv<out Inv<out In<Int?>>>>; upper: Out<Inv<out Inv<out In<Nothing?>>>>; substitution: Out<Inv<out Inv<out In<*>>>>
In<Inv<in In<Inv<in T?>>>>
in Int. lower: In<Inv<in In<Inv<in Int?>>>>; upper: In<Inv<in In<Inv<Any?>>>>; substitution: In<Inv<in In<Inv<in Int?>>>>
@@ -200,7 +200,7 @@ Out<Inv<in Inv<in Inv<T?>>>>
In<In<Inv<In<In<T?>>>>>
in Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Any?>>>>>; substitution: In<In<Inv<In<In<Int?>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int?>>>>>; substitution: In<In<Inv<In<In<out Any?>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int?>>>>>; substitution: In<In<Inv<In<In<*>>>>>
Inv<Inv<Inv<Out<Inv<in T?>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<out Inv<out Out<Inv<in Int?>>>>>; substitution: Inv<Inv<Inv<Out<Inv<in Int?>>>>>
@@ -244,11 +244,11 @@ In<Inv<Out<In<Inv<Inv<T?>>>>>>
Out<Inv<Inv<out Inv<Inv<in In<T?>>>>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Any?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<Int?>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<out Any?>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<*>>>>>>
Inv<Out<In<In<Inv<in In<T?>>>>>>
in Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Any?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<Int?>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<out Any?>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<*>>>>>>
Inv<In<Inv<Inv<in Inv<out Inv<out T?>>>>>>
in Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<Inv<Inv<in Inv<out Inv<out Int?>>>>>>
@@ -260,10 +260,10 @@ In<Inv<out Inv<in Inv<Inv<in Inv<out T?>>>>>>
In<Inv<Inv<out Inv<out In<In<T?>>>>>>
in Int. lower: In<Inv<out Inv<out Inv<out In<In<Any?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<Int?>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<out Any?>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<*>>>>>>
Out<In<Inv<Out<Inv<Out<T?>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<In<Inv<out Out<Inv<out Out<Int?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Int?>>>>>>
Inv<out Inv<Inv<in Out<Inv<out Inv<in T?>>>>>>
@@ -271,9 +271,9 @@ Inv<out Inv<Inv<in Out<Inv<out Inv<in T?>>>>>>
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<in Out<Inv<out Inv<in Int?>>>>>>; substitution: Inv<out Inv<Inv<in Out<Inv<out Inv<in Int?>>>>>>
Out<Inv<in Inv<Out<Inv<Out<T?>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Int?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Int?>>>>>>
Inv<Inv<in Inv<in In<In<Out<T?>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Any?>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<*>>>>>>
out Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Int?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Int?>>>>>>
@@ -1,9 +1,9 @@
In<T>
in Int. lower: In<Any?>; upper: In<Int>; substitution: In<Int>
out Int. lower: In<Int>; upper: In<Nothing>; substitution: In<out Any?>
out Int. lower: In<Int>; upper: In<Nothing>; substitution: In<*>
Out<T>
in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<Any?>
in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<*>
out Int. lower: Out<Nothing>; upper: Out<Int>; substitution: Out<Int>
Inv<T>
@@ -20,10 +20,10 @@ Inv<out T>
In<In<T>>
in Int. lower: In<In<Int>>; upper: In<In<Any?>>; substitution: In<In<Int>>
out Int. lower: In<In<Nothing>>; upper: In<In<Int>>; substitution: In<In<out Any?>>
out Int. lower: In<In<Nothing>>; upper: In<In<Int>>; substitution: In<In<*>>
In<Out<T>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<Any?>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<*>>
out Int. lower: In<Out<Int>>; upper: In<Out<Nothing>>; substitution: In<Out<Int>>
In<Inv<T>>
@@ -40,10 +40,10 @@ In<Inv<out T>>
Out<In<T>>
in Int. lower: Out<In<Any?>>; upper: Out<In<Int>>; substitution: Out<In<Int>>
out Int. lower: Out<In<Int>>; upper: Out<In<Nothing>>; substitution: Out<In<out Any?>>
out Int. lower: Out<In<Int>>; upper: Out<In<Nothing>>; substitution: Out<In<*>>
Out<Out<T>>
in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<*>>
out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Int>>; substitution: Out<Out<Int>>
Out<Inv<T>>
@@ -60,10 +60,10 @@ Out<Inv<out T>>
Inv<In<T>>
in Int. lower: Nothing; upper: Inv<out In<Int>>; substitution: Inv<In<Int>>
out Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<out Any?>>
out Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<*>>
Inv<Out<T>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<*>>
out Int. lower: Nothing; upper: Inv<out Out<Int>>; substitution: Inv<Out<Int>>
Inv<Inv<T>>
@@ -80,10 +80,10 @@ Inv<Inv<out T>>
Inv<in In<T>>
in Int. lower: Inv<in In<Int>>; upper: Inv<in In<Any?>>; substitution: Inv<in In<Int>>
out Int. lower: Inv<in In<Nothing>>; upper: Inv<in In<Int>>; substitution: Inv<in In<out Any?>>
out Int. lower: Inv<in In<Nothing>>; upper: Inv<in In<Int>>; substitution: Inv<in In<*>>
Inv<in Out<T>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int>>; substitution: Inv<in Out<Any?>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int>>; substitution: Inv<in Out<*>>
out Int. lower: Inv<in Out<Int>>; upper: Inv<in Out<Nothing>>; substitution: Inv<in Out<Int>>
Inv<in Inv<T>>
@@ -100,10 +100,10 @@ Inv<in Inv<out T>>
Inv<out In<T>>
in Int. lower: Inv<out In<Any?>>; upper: Inv<out In<Int>>; substitution: Inv<out In<Int>>
out Int. lower: Inv<out In<Int>>; upper: Inv<out In<Nothing>>; substitution: Inv<out In<out Any?>>
out Int. lower: Inv<out In<Int>>; upper: Inv<out In<Nothing>>; substitution: Inv<out In<*>>
Inv<out Out<T>>
in Int. lower: Inv<out Out<Int>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<Any?>>
in Int. lower: Inv<out Out<Int>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<*>>
out Int. lower: Inv<out Out<Nothing>>; upper: Inv<out Out<Int>>; substitution: Inv<out Out<Int>>
Inv<out Inv<T>>
@@ -119,19 +119,19 @@ Inv<out Inv<out T>>
out Int. lower: Inv<out Inv<Nothing>>; upper: Inv<out Inv<out Int>>; substitution: Inv<out Inv<out Int>>
In<Inv<Out<T>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<Any?>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<*>>>
out Int. lower: In<Inv<out Out<Int>>>; upper: In<Nothing>; substitution: In<Inv<Out<Int>>>
Out<Out<Out<T>>>
in Int. lower: Out<Out<Out<Int>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<Any?>>>
in Int. lower: Out<Out<Out<Int>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<*>>>
out Int. lower: Out<Out<Out<Nothing>>>; upper: Out<Out<Out<Int>>>; substitution: Out<Out<Out<Int>>>
Inv<Inv<in In<T>>>
in Int. lower: Nothing; upper: Inv<out Inv<in In<Any?>>>; substitution: Inv<Inv<in In<Int>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int>>>; substitution: Inv<Inv<in In<out Any?>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int>>>; substitution: Inv<Inv<in In<*>>>
Inv<out Inv<Out<T>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<Any?>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<*>>>
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int>>>; substitution: Inv<out Inv<Out<Int>>>
Inv<in Inv<Inv<T>>>
@@ -140,10 +140,10 @@ Inv<in Inv<Inv<T>>>
Out<Inv<In<T>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out In<Int>>>; substitution: Out<Inv<In<Int>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing>>>; substitution: Out<Inv<In<out Any?>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing>>>; substitution: Out<Inv<In<*>>>
Inv<out Out<Out<T>>>
in Int. lower: Inv<out Out<Out<Int>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<Any?>>>
in Int. lower: Inv<out Out<Out<Int>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<*>>>
out Int. lower: Inv<out Out<Out<Nothing>>>; upper: Inv<out Out<Out<Int>>>; substitution: Inv<out Out<Out<Int>>>
Out<In<Inv<T>>>
@@ -151,7 +151,7 @@ Out<In<Inv<T>>>
out Int. lower: Out<In<Inv<out Int>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<out Int>>>
Inv<out In<Out<T>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int>>>; substitution: Inv<out In<Out<Any?>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int>>>; substitution: Inv<out In<Out<*>>>
out Int. lower: Inv<out In<Out<Int>>>; upper: Inv<out In<Out<Nothing>>>; substitution: Inv<out In<Out<Int>>>
In<Out<Inv<T>>>
@@ -184,7 +184,7 @@ Inv<out Out<Inv<out Inv<in T>>>>
Out<Inv<out Inv<out In<T>>>>
in Int. lower: Out<Inv<out Inv<out In<Any?>>>>; upper: Out<Inv<out Inv<out In<Int>>>>; substitution: Out<Inv<out Inv<out In<Int>>>>
out Int. lower: Out<Inv<out Inv<out In<Int>>>>; upper: Out<Inv<out Inv<out In<Nothing>>>>; substitution: Out<Inv<out Inv<out In<out Any?>>>>
out Int. lower: Out<Inv<out Inv<out In<Int>>>>; upper: Out<Inv<out Inv<out In<Nothing>>>>; substitution: Out<Inv<out Inv<out In<*>>>>
In<Inv<in In<Inv<in T>>>>
in Int. lower: In<Inv<in In<Inv<in Int>>>>; upper: In<Inv<in In<Inv<Any?>>>>; substitution: In<Inv<in In<Inv<in Int>>>>
@@ -200,7 +200,7 @@ Out<Inv<in Inv<in Inv<T>>>>
In<In<Inv<In<In<T>>>>>
in Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Any?>>>>>; substitution: In<In<Inv<In<In<Int>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int>>>>>; substitution: In<In<Inv<In<In<out Any?>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int>>>>>; substitution: In<In<Inv<In<In<*>>>>>
Inv<Inv<Inv<Out<Inv<in T>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<out Inv<out Out<Inv<in Int>>>>>; substitution: Inv<Inv<Inv<Out<Inv<in Int>>>>>
@@ -244,11 +244,11 @@ In<Inv<Out<In<Inv<Inv<T>>>>>>
Out<Inv<Inv<out Inv<Inv<in In<T>>>>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Any?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<Int>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<out Any?>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<*>>>>>>
Inv<Out<In<In<Inv<in In<T>>>>>>
in Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Any?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<Int>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int>>>>>>; substitution: Inv<Out<In<In<Inv<in In<out Any?>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int>>>>>>; substitution: Inv<Out<In<In<Inv<in In<*>>>>>>
Inv<In<Inv<Inv<in Inv<out Inv<out T>>>>>>
in Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<Inv<Inv<in Inv<out Inv<out Int>>>>>>
@@ -260,10 +260,10 @@ In<Inv<out Inv<in Inv<Inv<in Inv<out T>>>>>>
In<Inv<Inv<out Inv<out In<In<T>>>>>>
in Int. lower: In<Inv<out Inv<out Inv<out In<In<Any?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<Int>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<out Any?>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<*>>>>>>
Out<In<Inv<Out<Inv<Out<T>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<In<Inv<out Out<Inv<out Out<Int>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Int>>>>>>
Inv<out Inv<Inv<in Out<Inv<out Inv<in T>>>>>>
@@ -271,9 +271,9 @@ Inv<out Inv<Inv<in Out<Inv<out Inv<in T>>>>>>
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<in Out<Inv<out Inv<in Int>>>>>>; substitution: Inv<out Inv<Inv<in Out<Inv<out Inv<in Int>>>>>>
Out<Inv<in Inv<Out<Inv<Out<T>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Int>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Int>>>>>>
Inv<Inv<in Inv<in In<In<Out<T>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Any?>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<*>>>>>>
out Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Int>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Int>>>>>>
@@ -14,7 +14,7 @@ Inv<out Fun<T, R>>
T = in Int. R = out String. lower: Inv<out Fun<Any?, Nothing>>; upper: Inv<out Fun<Int, String>>; substitution: Inv<out Fun<Int, String>>
Fun<In<T>, In<R>>
T = in Int. R = out String. lower: Fun<In<Int>, In<String>>; upper: Fun<In<Any?>, In<Nothing>>; substitution: Fun<In<Int>, In<out Any?>>
T = in Int. R = out String. lower: Fun<In<Int>, In<String>>; upper: Fun<In<Any?>, In<Nothing>>; substitution: Fun<In<Int>, In<*>>
Fun<In<T>, Out<R>>
T = in Int. R = out String. lower: Fun<In<Int>, Out<Nothing>>; upper: Fun<In<Any?>, Out<String>>; substitution: Fun<In<Int>, Out<String>>
@@ -29,22 +29,22 @@ Fun<In<T>, Inv<out R>>
T = in Int. R = out String. lower: Fun<In<Int>, Inv<Nothing>>; upper: Fun<In<Any?>, Inv<out String>>; substitution: Fun<In<Int>, Inv<out String>>
Fun<Out<T>, In<R>>
T = in Int. R = out String. lower: Fun<Out<Any?>, In<String>>; upper: Fun<Out<Int>, In<Nothing>>; substitution: Fun<Out<Any?>, In<out Any?>>
T = in Int. R = out String. lower: Fun<Out<Any?>, In<String>>; upper: Fun<Out<Int>, In<Nothing>>; substitution: Fun<Out<*>, In<*>>
Fun<Out<T>, Out<R>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Out<Nothing>>; upper: Fun<Out<Int>, Out<String>>; substitution: Fun<Out<Any?>, Out<String>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Out<Nothing>>; upper: Fun<Out<Int>, Out<String>>; substitution: Fun<Out<*>, Out<String>>
Fun<Out<T>, Inv<R>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Nothing>; upper: Fun<Out<Int>, Inv<out String>>; substitution: Fun<Out<Any?>, Inv<out String>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Nothing>; upper: Fun<Out<Int>, Inv<out String>>; substitution: Fun<Out<*>, Inv<out String>>
Fun<Out<T>, Inv<in R>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Inv<in String>>; upper: Fun<Out<Int>, Inv<out Any?>>; substitution: Fun<Out<Any?>, Inv<in String>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Inv<in String>>; upper: Fun<Out<Int>, Inv<out Any?>>; substitution: Fun<Out<*>, Inv<in String>>
Fun<Out<T>, Inv<out R>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Inv<Nothing>>; upper: Fun<Out<Int>, Inv<out String>>; substitution: Fun<Out<Any?>, Inv<out String>>
T = in Int. R = out String. lower: Fun<Out<Any?>, Inv<Nothing>>; upper: Fun<Out<Int>, Inv<out String>>; substitution: Fun<Out<*>, Inv<out String>>
Fun<Inv<T>, In<R>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, In<String>>; upper: Fun<Nothing, In<Nothing>>; substitution: Fun<Inv<in Int>, In<out Any?>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, In<String>>; upper: Fun<Nothing, In<Nothing>>; substitution: Fun<Inv<in Int>, In<*>>
Fun<Inv<T>, Out<R>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, Out<Nothing>>; upper: Fun<Nothing, Out<String>>; substitution: Fun<Inv<in Int>, Out<String>>
@@ -59,7 +59,7 @@ Fun<Inv<T>, Inv<out R>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, Inv<Nothing>>; upper: Fun<Nothing, Inv<out String>>; substitution: Fun<Inv<in Int>, Inv<out String>>
Fun<Inv<in T>, In<R>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, In<String>>; upper: Fun<Inv<Any?>, In<Nothing>>; substitution: Fun<Inv<in Int>, In<out Any?>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, In<String>>; upper: Fun<Inv<Any?>, In<Nothing>>; substitution: Fun<Inv<in Int>, In<*>>
Fun<Inv<in T>, Out<R>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, Out<Nothing>>; upper: Fun<Inv<Any?>, Out<String>>; substitution: Fun<Inv<in Int>, Out<String>>
@@ -74,7 +74,7 @@ Fun<Inv<in T>, Inv<out R>>
T = in Int. R = out String. lower: Fun<Inv<in Int>, Inv<Nothing>>; upper: Fun<Inv<Any?>, Inv<out String>>; substitution: Fun<Inv<in Int>, Inv<out String>>
Fun<Inv<out T>, In<R>>
T = in Int. R = out String. lower: Fun<Inv<out Any?>, In<String>>; upper: Fun<Inv<out Int>, In<Nothing>>; substitution: Fun<Inv<out Int>, In<out Any?>>
T = in Int. R = out String. lower: Fun<Inv<out Any?>, In<String>>; upper: Fun<Inv<out Int>, In<Nothing>>; substitution: Fun<Inv<out Int>, In<*>>
Fun<Inv<out T>, Out<R>>
T = in Int. R = out String. lower: Fun<Inv<out Any?>, Out<Nothing>>; upper: Fun<Inv<out Int>, Out<String>>; substitution: Fun<Inv<out Int>, Out<String>>
@@ -104,7 +104,7 @@ Inv<out Inv2<T, R>>
T = in Int. R = out String. lower: Inv<Nothing>; upper: Inv<out Inv2<in Int, out String>>; substitution: Inv<out Inv2<in Int, out String>>
Inv2<In<T>, In<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out In<Int>, out In<Nothing>>; substitution: Inv2<In<Int>, In<out Any?>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out In<Int>, out In<Nothing>>; substitution: Inv2<In<Int>, In<*>>
Inv2<In<T>, Out<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out In<Int>, out Out<String>>; substitution: Inv2<In<Int>, Out<String>>
@@ -119,22 +119,22 @@ Inv2<In<T>, Inv<out R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out In<Int>, out Inv<out String>>; substitution: Inv2<In<Int>, Inv<out String>>
Inv2<Out<T>, In<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out In<Nothing>>; substitution: Inv2<Out<Any?>, In<out Any?>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out In<Nothing>>; substitution: Inv2<Out<*>, In<*>>
Inv2<Out<T>, Out<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Out<String>>; substitution: Inv2<Out<Any?>, Out<String>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Out<String>>; substitution: Inv2<Out<*>, Out<String>>
Inv2<Out<T>, Inv<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Inv<out String>>; substitution: Inv2<Out<Any?>, Inv<out String>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Inv<out String>>; substitution: Inv2<Out<*>, Inv<out String>>
Inv2<Out<T>, Inv<in R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Inv<out Any?>>; substitution: Inv2<Out<Any?>, Inv<in String>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Inv<out Any?>>; substitution: Inv2<Out<*>, Inv<in String>>
Inv2<Out<T>, Inv<out R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Inv<out String>>; substitution: Inv2<Out<Any?>, Inv<out String>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Out<Any?>, out Inv<out String>>; substitution: Inv2<Out<*>, Inv<out String>>
Inv2<Inv<T>, In<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out In<Nothing>>; substitution: Inv2<Inv<in Int>, In<out Any?>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out In<Nothing>>; substitution: Inv2<Inv<in Int>, In<*>>
Inv2<Inv<T>, Out<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out Out<String>>; substitution: Inv2<Inv<in Int>, Out<String>>
@@ -149,7 +149,7 @@ Inv2<Inv<T>, Inv<out R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out Inv<out String>>; substitution: Inv2<Inv<in Int>, Inv<out String>>
Inv2<Inv<in T>, In<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out In<Nothing>>; substitution: Inv2<Inv<in Int>, In<out Any?>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out In<Nothing>>; substitution: Inv2<Inv<in Int>, In<*>>
Inv2<Inv<in T>, Out<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out Out<String>>; substitution: Inv2<Inv<in Int>, Out<String>>
@@ -164,7 +164,7 @@ Inv2<Inv<in T>, Inv<out R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out Inv<out String>>; substitution: Inv2<Inv<in Int>, Inv<out String>>
Inv2<Inv<out T>, In<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<out Any?>, out In<Nothing>>; substitution: Inv2<Inv<out Int>, In<out Any?>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<out Any?>, out In<Nothing>>; substitution: Inv2<Inv<out Int>, In<*>>
Inv2<Inv<out T>, Out<R>>
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<out Any?>, out Out<String>>; substitution: Inv2<Inv<out Int>, Out<String>>
@@ -1,6 +1,6 @@
In<in T?>
in Int. lower: In<Any?>; upper: In<Int?>; substitution: In<Int?>
out Int. lower: In<Int?>; upper: In<Nothing?>; substitution: In<out Any?>
out Int. lower: In<Int?>; upper: In<Nothing?>; substitution: In<*>
Out<in T?>
compiler error
@@ -17,7 +17,7 @@ Inv<out in T?>
In<In<in T?>>
in Int. lower: In<In<Int?>>; upper: In<In<Any?>>; substitution: In<In<Int?>>
out Int. lower: In<In<Nothing?>>; upper: In<In<Int?>>; substitution: In<In<out Any?>>
out Int. lower: In<In<Nothing?>>; upper: In<In<Int?>>; substitution: In<In<*>>
In<Out<in T?>>
compiler error
@@ -34,7 +34,7 @@ In<Inv<out in T?>>
Out<In<in T?>>
in Int. lower: Out<In<Any?>>; upper: Out<In<Int?>>; substitution: Out<In<Int?>>
out Int. lower: Out<In<Int?>>; upper: Out<In<Nothing?>>; substitution: Out<In<out Any?>>
out Int. lower: Out<In<Int?>>; upper: Out<In<Nothing?>>; substitution: Out<In<*>>
Out<Out<in T?>>
compiler error
@@ -51,7 +51,7 @@ Out<Inv<out in T?>>
Inv<In<in T?>>
in Int. lower: Nothing; upper: Inv<out In<Int?>>; substitution: Inv<In<Int?>>
out Int. lower: Nothing; upper: Inv<out In<Nothing?>>; substitution: Inv<In<out Any?>>
out Int. lower: Nothing; upper: Inv<out In<Nothing?>>; substitution: Inv<In<*>>
Inv<Out<in T?>>
compiler error
@@ -68,7 +68,7 @@ Inv<Inv<out in T?>>
Inv<in In<in T?>>
in Int. lower: Inv<in In<Int?>>; upper: Inv<in In<Any?>>; substitution: Inv<in In<Int?>>
out Int. lower: Inv<in In<Nothing?>>; upper: Inv<in In<Int?>>; substitution: Inv<in In<out Any?>>
out Int. lower: Inv<in In<Nothing?>>; upper: Inv<in In<Int?>>; substitution: Inv<in In<*>>
Inv<in Out<in T?>>
compiler error
@@ -85,7 +85,7 @@ Inv<in Inv<out in T?>>
Inv<out In<in T?>>
in Int. lower: Inv<out In<Any?>>; upper: Inv<out In<Int?>>; substitution: Inv<out In<Int?>>
out Int. lower: Inv<out In<Int?>>; upper: Inv<out In<Nothing?>>; substitution: Inv<out In<out Any?>>
out Int. lower: Inv<out In<Int?>>; upper: Inv<out In<Nothing?>>; substitution: Inv<out In<*>>
Inv<out Out<in T?>>
compiler error
@@ -108,7 +108,7 @@ Out<Out<Out<in T?>>>
Inv<Inv<in In<in T?>>>
in Int. lower: Nothing; upper: Inv<out Inv<in In<Any?>>>; substitution: Inv<Inv<in In<Int?>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int?>>>; substitution: Inv<Inv<in In<out Any?>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int?>>>; substitution: Inv<Inv<in In<*>>>
Inv<out Inv<Out<in T?>>>
compiler error
@@ -119,7 +119,7 @@ Inv<in Inv<Inv<in T?>>>
Out<Inv<In<in T?>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out In<Int?>>>; substitution: Out<Inv<In<Int?>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing?>>>; substitution: Out<Inv<In<out Any?>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing?>>>; substitution: Out<Inv<In<*>>>
Inv<out Out<Out<in T?>>>
compiler error
@@ -156,7 +156,7 @@ Inv<out Out<Inv<out Inv<in in T?>>>>
Out<Inv<out Inv<out In<in T?>>>>
in Int. lower: Out<Inv<out Inv<out In<Any?>>>>; upper: Out<Inv<out Inv<out In<Int?>>>>; substitution: Out<Inv<out Inv<out In<Int?>>>>
out Int. lower: Out<Inv<out Inv<out In<Int?>>>>; upper: Out<Inv<out Inv<out In<Nothing?>>>>; substitution: Out<Inv<out Inv<out In<out Any?>>>>
out Int. lower: Out<Inv<out Inv<out In<Int?>>>>; upper: Out<Inv<out Inv<out In<Nothing?>>>>; substitution: Out<Inv<out Inv<out In<*>>>>
In<Inv<in In<Inv<in in T?>>>>
compiler error
@@ -171,7 +171,7 @@ Out<Inv<in Inv<in Inv<in T?>>>>
In<In<Inv<In<In<in T?>>>>>
in Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Any?>>>>>; substitution: In<In<Inv<In<In<Int?>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int?>>>>>; substitution: In<In<Inv<In<In<out Any?>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int?>>>>>; substitution: In<In<Inv<In<In<*>>>>>
Inv<Inv<Inv<Out<Inv<in in T?>>>>>
compiler error
@@ -206,11 +206,11 @@ In<Inv<Out<In<Inv<Inv<in T?>>>>>>
Out<Inv<Inv<out Inv<Inv<in In<in T?>>>>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Any?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<Int?>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<out Any?>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<*>>>>>>
Inv<Out<In<In<Inv<in In<in T?>>>>>>
in Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Any?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<Int?>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<out Any?>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<*>>>>>>
Inv<In<Inv<Inv<in Inv<out Inv<out in T?>>>>>>
compiler error
@@ -220,7 +220,7 @@ In<Inv<out Inv<in Inv<Inv<in Inv<out in T?>>>>>>
In<Inv<Inv<out Inv<out In<In<in T?>>>>>>
in Int. lower: In<Inv<out Inv<out Inv<out In<In<Any?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<Int?>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<out Any?>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<*>>>>>>
Out<In<Inv<Out<Inv<Out<in T?>>>>>>
compiler error
@@ -1,6 +1,6 @@
In<in T>
in Int. lower: In<Any?>; upper: In<Int>; substitution: In<Int>
out Int. lower: In<Int>; upper: In<Nothing>; substitution: In<out Any?>
out Int. lower: In<Int>; upper: In<Nothing>; substitution: In<*>
Out<in T>
compiler error
@@ -17,7 +17,7 @@ Inv<out in T>
In<In<in T>>
in Int. lower: In<In<Int>>; upper: In<In<Any?>>; substitution: In<In<Int>>
out Int. lower: In<In<Nothing>>; upper: In<In<Int>>; substitution: In<In<out Any?>>
out Int. lower: In<In<Nothing>>; upper: In<In<Int>>; substitution: In<In<*>>
In<Out<in T>>
compiler error
@@ -34,7 +34,7 @@ In<Inv<out in T>>
Out<In<in T>>
in Int. lower: Out<In<Any?>>; upper: Out<In<Int>>; substitution: Out<In<Int>>
out Int. lower: Out<In<Int>>; upper: Out<In<Nothing>>; substitution: Out<In<out Any?>>
out Int. lower: Out<In<Int>>; upper: Out<In<Nothing>>; substitution: Out<In<*>>
Out<Out<in T>>
compiler error
@@ -51,7 +51,7 @@ Out<Inv<out in T>>
Inv<In<in T>>
in Int. lower: Nothing; upper: Inv<out In<Int>>; substitution: Inv<In<Int>>
out Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<out Any?>>
out Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<*>>
Inv<Out<in T>>
compiler error
@@ -68,7 +68,7 @@ Inv<Inv<out in T>>
Inv<in In<in T>>
in Int. lower: Inv<in In<Int>>; upper: Inv<in In<Any?>>; substitution: Inv<in In<Int>>
out Int. lower: Inv<in In<Nothing>>; upper: Inv<in In<Int>>; substitution: Inv<in In<out Any?>>
out Int. lower: Inv<in In<Nothing>>; upper: Inv<in In<Int>>; substitution: Inv<in In<*>>
Inv<in Out<in T>>
compiler error
@@ -85,7 +85,7 @@ Inv<in Inv<out in T>>
Inv<out In<in T>>
in Int. lower: Inv<out In<Any?>>; upper: Inv<out In<Int>>; substitution: Inv<out In<Int>>
out Int. lower: Inv<out In<Int>>; upper: Inv<out In<Nothing>>; substitution: Inv<out In<out Any?>>
out Int. lower: Inv<out In<Int>>; upper: Inv<out In<Nothing>>; substitution: Inv<out In<*>>
Inv<out Out<in T>>
compiler error
@@ -108,7 +108,7 @@ Out<Out<Out<in T>>>
Inv<Inv<in In<in T>>>
in Int. lower: Nothing; upper: Inv<out Inv<in In<Any?>>>; substitution: Inv<Inv<in In<Int>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int>>>; substitution: Inv<Inv<in In<out Any?>>>
out Int. lower: Nothing; upper: Inv<out Inv<in In<Int>>>; substitution: Inv<Inv<in In<*>>>
Inv<out Inv<Out<in T>>>
compiler error
@@ -119,7 +119,7 @@ Inv<in Inv<Inv<in T>>>
Out<Inv<In<in T>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out In<Int>>>; substitution: Out<Inv<In<Int>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing>>>; substitution: Out<Inv<In<out Any?>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out In<Nothing>>>; substitution: Out<Inv<In<*>>>
Inv<out Out<Out<in T>>>
compiler error
@@ -156,7 +156,7 @@ Inv<out Out<Inv<out Inv<in in T>>>>
Out<Inv<out Inv<out In<in T>>>>
in Int. lower: Out<Inv<out Inv<out In<Any?>>>>; upper: Out<Inv<out Inv<out In<Int>>>>; substitution: Out<Inv<out Inv<out In<Int>>>>
out Int. lower: Out<Inv<out Inv<out In<Int>>>>; upper: Out<Inv<out Inv<out In<Nothing>>>>; substitution: Out<Inv<out Inv<out In<out Any?>>>>
out Int. lower: Out<Inv<out Inv<out In<Int>>>>; upper: Out<Inv<out Inv<out In<Nothing>>>>; substitution: Out<Inv<out Inv<out In<*>>>>
In<Inv<in In<Inv<in in T>>>>
compiler error
@@ -171,7 +171,7 @@ Out<Inv<in Inv<in Inv<in T>>>>
In<In<Inv<In<In<in T>>>>>
in Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Any?>>>>>; substitution: In<In<Inv<In<In<Int>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int>>>>>; substitution: In<In<Inv<In<In<out Any?>>>>>
out Int. lower: In<In<Nothing>>; upper: In<In<Inv<out In<In<Int>>>>>; substitution: In<In<Inv<In<In<*>>>>>
Inv<Inv<Inv<Out<Inv<in in T>>>>>
compiler error
@@ -206,11 +206,11 @@ In<Inv<Out<In<Inv<Inv<in T>>>>>>
Out<Inv<Inv<out Inv<Inv<in In<in T>>>>>>
in Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Any?>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<Int>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<out Any?>>>>>>
out Int. lower: Out<Nothing>; upper: Out<Inv<out Inv<out Inv<out Inv<in In<Int>>>>>>; substitution: Out<Inv<Inv<out Inv<Inv<in In<*>>>>>>
Inv<Out<In<In<Inv<in In<in T>>>>>>
in Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Any?>>>>>>; substitution: Inv<Out<In<In<Inv<in In<Int>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int>>>>>>; substitution: Inv<Out<In<In<Inv<in In<out Any?>>>>>>
out Int. lower: Nothing; upper: Inv<out Out<In<In<Inv<in In<Int>>>>>>; substitution: Inv<Out<In<In<Inv<in In<*>>>>>>
Inv<In<Inv<Inv<in Inv<out Inv<out in T>>>>>>
compiler error
@@ -220,7 +220,7 @@ In<Inv<out Inv<in Inv<Inv<in Inv<out in T>>>>>>
In<Inv<Inv<out Inv<out In<In<in T>>>>>>
in Int. lower: In<Inv<out Inv<out Inv<out In<In<Any?>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<Int>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<out Any?>>>>>>
out Int. lower: In<Inv<out Inv<out Inv<out In<In<Int>>>>>>; upper: In<Nothing>; substitution: In<Inv<Inv<out Inv<out In<In<*>>>>>>
Out<In<Inv<Out<Inv<Out<in T>>>>>>
compiler error
@@ -2,7 +2,7 @@ In<out T?>
compiler error
Out<out T?>
in Int. lower: Out<Int?>; upper: Out<Any?>; substitution: Out<Any?>
in Int. lower: Out<Int?>; upper: Out<Any?>; substitution: Out<*>
out Int. lower: Out<Nothing?>; upper: Out<Int?>; substitution: Out<Int?>
Inv<out T?>
@@ -19,7 +19,7 @@ In<In<out T?>>
compiler error
In<Out<out T?>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int?>>; substitution: In<Out<Any?>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int?>>; substitution: In<Out<*>>
out Int. lower: In<Out<Int?>>; upper: In<Out<Nothing?>>; substitution: In<Out<Int?>>
In<Inv<out T?>>
@@ -36,7 +36,7 @@ Out<In<out T?>>
compiler error
Out<Out<out T?>>
in Int. lower: Out<Out<Int?>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
in Int. lower: Out<Out<Int?>>; upper: Out<Out<Any?>>; substitution: Out<Out<*>>
out Int. lower: Out<Out<Nothing?>>; upper: Out<Out<Int?>>; substitution: Out<Out<Int?>>
Out<Inv<out T?>>
@@ -53,7 +53,7 @@ Inv<In<out T?>>
compiler error
Inv<Out<out T?>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<*>>
out Int. lower: Nothing; upper: Inv<out Out<Int?>>; substitution: Inv<Out<Int?>>
Inv<Inv<out T?>>
@@ -70,7 +70,7 @@ Inv<in In<out T?>>
compiler error
Inv<in Out<out T?>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int?>>; substitution: Inv<in Out<Any?>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int?>>; substitution: Inv<in Out<*>>
out Int. lower: Inv<in Out<Int?>>; upper: Inv<in Out<Nothing?>>; substitution: Inv<in Out<Int?>>
Inv<in Inv<out T?>>
@@ -87,7 +87,7 @@ Inv<out In<out T?>>
compiler error
Inv<out Out<out T?>>
in Int. lower: Inv<out Out<Int?>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<Any?>>
in Int. lower: Inv<out Out<Int?>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<*>>
out Int. lower: Inv<out Out<Nothing?>>; upper: Inv<out Out<Int?>>; substitution: Inv<out Out<Int?>>
Inv<out Inv<out T?>>
@@ -101,18 +101,18 @@ Inv<out Inv<out out T?>>
compiler error
In<Inv<Out<out T?>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<Any?>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<*>>>
out Int. lower: In<Inv<out Out<Int?>>>; upper: In<Nothing>; substitution: In<Inv<Out<Int?>>>
Out<Out<Out<out T?>>>
in Int. lower: Out<Out<Out<Int?>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<Any?>>>
in Int. lower: Out<Out<Out<Int?>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<*>>>
out Int. lower: Out<Out<Out<Nothing?>>>; upper: Out<Out<Out<Int?>>>; substitution: Out<Out<Out<Int?>>>
Inv<Inv<in In<out T?>>>
compiler error
Inv<out Inv<Out<out T?>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<Any?>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<*>>>
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int?>>>; substitution: Inv<out Inv<Out<Int?>>>
Inv<in Inv<Inv<out T?>>>
@@ -123,7 +123,7 @@ Out<Inv<In<out T?>>>
compiler error
Inv<out Out<Out<out T?>>>
in Int. lower: Inv<out Out<Out<Int?>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<Any?>>>
in Int. lower: Inv<out Out<Out<Int?>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<*>>>
out Int. lower: Inv<out Out<Out<Nothing?>>>; upper: Inv<out Out<Out<Int?>>>; substitution: Inv<out Out<Out<Int?>>>
Out<In<Inv<out T?>>>
@@ -131,7 +131,7 @@ Out<In<Inv<out T?>>>
out Int. lower: Out<In<Inv<out Int?>>>; upper: Out<In<Inv<out Nothing?>>>; substitution: Out<In<Inv<out Int?>>>
Inv<out In<Out<out T?>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int?>>>; substitution: Inv<out In<Out<Any?>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int?>>>; substitution: Inv<out In<Out<*>>>
out Int. lower: Inv<out In<Out<Int?>>>; upper: Inv<out In<Out<Nothing?>>>; substitution: Inv<out In<Out<Int?>>>
In<Out<Inv<out T?>>>
@@ -221,16 +221,16 @@ In<Inv<Inv<out Inv<out In<In<out T?>>>>>>
compiler error
Out<In<Inv<Out<Inv<Out<out T?>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<In<Inv<out Out<Inv<out Out<Int?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Int?>>>>>>
Inv<out Inv<Inv<in Out<Inv<out Inv<in out T?>>>>>>
compiler error
Out<Inv<in Inv<Out<Inv<Out<out T?>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Int?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Int?>>>>>>
Inv<Inv<in Inv<in In<In<Out<out T?>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Any?>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<*>>>>>>
out Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Int?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Int?>>>>>>
@@ -2,7 +2,7 @@ In<out T>
compiler error
Out<out T>
in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<Any?>
in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<*>
out Int. lower: Out<Nothing>; upper: Out<Int>; substitution: Out<Int>
Inv<out T>
@@ -19,7 +19,7 @@ In<In<out T>>
compiler error
In<Out<out T>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<Any?>>
in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<*>>
out Int. lower: In<Out<Int>>; upper: In<Out<Nothing>>; substitution: In<Out<Int>>
In<Inv<out T>>
@@ -36,7 +36,7 @@ Out<In<out T>>
compiler error
Out<Out<out T>>
in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<*>>
out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Int>>; substitution: Out<Out<Int>>
Out<Inv<out T>>
@@ -53,7 +53,7 @@ Inv<In<out T>>
compiler error
Inv<Out<out T>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<*>>
out Int. lower: Nothing; upper: Inv<out Out<Int>>; substitution: Inv<Out<Int>>
Inv<Inv<out T>>
@@ -70,7 +70,7 @@ Inv<in In<out T>>
compiler error
Inv<in Out<out T>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int>>; substitution: Inv<in Out<Any?>>
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int>>; substitution: Inv<in Out<*>>
out Int. lower: Inv<in Out<Int>>; upper: Inv<in Out<Nothing>>; substitution: Inv<in Out<Int>>
Inv<in Inv<out T>>
@@ -87,7 +87,7 @@ Inv<out In<out T>>
compiler error
Inv<out Out<out T>>
in Int. lower: Inv<out Out<Int>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<Any?>>
in Int. lower: Inv<out Out<Int>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<*>>
out Int. lower: Inv<out Out<Nothing>>; upper: Inv<out Out<Int>>; substitution: Inv<out Out<Int>>
Inv<out Inv<out T>>
@@ -101,18 +101,18 @@ Inv<out Inv<out out T>>
compiler error
In<Inv<Out<out T>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<Any?>>>
in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<*>>>
out Int. lower: In<Inv<out Out<Int>>>; upper: In<Nothing>; substitution: In<Inv<Out<Int>>>
Out<Out<Out<out T>>>
in Int. lower: Out<Out<Out<Int>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<Any?>>>
in Int. lower: Out<Out<Out<Int>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<*>>>
out Int. lower: Out<Out<Out<Nothing>>>; upper: Out<Out<Out<Int>>>; substitution: Out<Out<Out<Int>>>
Inv<Inv<in In<out T>>>
compiler error
Inv<out Inv<Out<out T>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<Any?>>>
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<*>>>
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int>>>; substitution: Inv<out Inv<Out<Int>>>
Inv<in Inv<Inv<out T>>>
@@ -123,7 +123,7 @@ Out<Inv<In<out T>>>
compiler error
Inv<out Out<Out<out T>>>
in Int. lower: Inv<out Out<Out<Int>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<Any?>>>
in Int. lower: Inv<out Out<Out<Int>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<*>>>
out Int. lower: Inv<out Out<Out<Nothing>>>; upper: Inv<out Out<Out<Int>>>; substitution: Inv<out Out<Out<Int>>>
Out<In<Inv<out T>>>
@@ -131,7 +131,7 @@ Out<In<Inv<out T>>>
out Int. lower: Out<In<Inv<out Int>>>; upper: Out<In<Inv<Nothing>>>; substitution: Out<In<Inv<out Int>>>
Inv<out In<Out<out T>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int>>>; substitution: Inv<out In<Out<Any?>>>
in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int>>>; substitution: Inv<out In<Out<*>>>
out Int. lower: Inv<out In<Out<Int>>>; upper: Inv<out In<Out<Nothing>>>; substitution: Inv<out In<Out<Int>>>
In<Out<Inv<out T>>>
@@ -221,16 +221,16 @@ In<Inv<Inv<out Inv<out In<In<out T>>>>>>
compiler error
Out<In<Inv<Out<Inv<Out<out T>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<In<Inv<out Out<Inv<out Out<Int>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Int>>>>>>
Inv<out Inv<Inv<in Out<Inv<out Inv<in out T>>>>>>
compiler error
Out<Inv<in Inv<Out<Inv<Out<out T>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Any?>>>>>>
in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<*>>>>>>
out Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Int>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Int>>>>>>
Inv<Inv<in Inv<in In<In<Out<out T>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Any?>>>>>>
in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<*>>>>>>
out Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Int>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Int>>>>>>
@@ -12168,7 +12168,7 @@ package java {
public open override /*1*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out E!>..kotlin.Collection<E!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open fun element(): E!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -12176,8 +12176,8 @@ package java {
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
public open fun remove(): E!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -13232,7 +13232,7 @@ package java {
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
private open fun readResolve(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -13381,7 +13381,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14305,7 +14305,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14367,7 +14367,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<K!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14396,14 +14396,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -14611,14 +14611,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -15361,7 +15361,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15479,7 +15479,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15534,7 +15534,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15583,7 +15583,7 @@ package java {
public open fun pollFirst(): E!
public open fun pollLast(): E!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open fun subSet(/*0*/ p0: E!, /*1*/ p1: E!): java.util.SortedSet<E!>!
@@ -15716,7 +15716,7 @@ package java {
public open override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15851,14 +15851,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -27,7 +27,7 @@ internal final class Foo1 : java.util.ArrayList<kotlin.Int> {
public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: kotlin.Int!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Int!>..kotlin.Collection<kotlin.Int!>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection<out kotlin.Int!>..kotlin.Collection<kotlin.Int!>?)): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
@@ -52,9 +52,9 @@ internal final class Foo1 : java.util.ArrayList<kotlin.Int> {
invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): kotlin.Int!
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.Int!): kotlin.Int!
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List<kotlin.Int!>!
@@ -0,0 +1,14 @@
// FILE: p/Base.java
package p;
import java.util.*;
public class Base<T> {
void coll(Collection<?> r) {}
}
// FILE: k.kt
package p
class Derived: p.Base<String>()
@@ -0,0 +1,20 @@
package
package p {
public open class Base</*0*/ T> {
public constructor Base</*0*/ T>()
public/*package*/ open fun coll(/*0*/ r: kotlin.(Mutable)Collection<*>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal final class Derived : p.Base<kotlin.String> {
public constructor Derived()
public/*package*/ open override /*1*/ /*fake_override*/ fun coll(/*0*/ r: kotlin.(Mutable)Collection<*>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,14 @@
// FILE: p/Base.java
package p;
public class Base<T> {
void foo(R<?> r) {}
}
// FILE: k.kt
package p
class R<T: R<T>>
class Derived: p.Base<String>()
@@ -0,0 +1,27 @@
package
package p {
public open class Base</*0*/ T> {
public constructor Base</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public/*package*/ open fun foo(/*0*/ r: p.R<*>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal final class Derived : p.Base<kotlin.String> {
public constructor Derived()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public/*package*/ open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: p.R<*>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal final class R</*0*/ T : p.R<T>> {
public constructor R</*0*/ T : p.R<T>>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,9 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class R<T: R<T>>
open class Base<T> {
fun foo(r: R<*>) {}
}
class Derived: Base<String>()
@@ -0,0 +1,24 @@
package
internal open class Base</*0*/ T> {
public constructor Base</*0*/ T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final fun foo(/*0*/ r: R<*>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal final class Derived : Base<kotlin.String> {
public constructor Derived()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final override /*1*/ /*fake_override*/ fun foo(/*0*/ r: R<*>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal final class R</*0*/ T : R<T>> {
public constructor R</*0*/ T : R<T>>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -12183,7 +12183,7 @@ package java {
public open override /*1*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out E!>..kotlin.Collection<E!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open fun element(): E!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -12191,8 +12191,8 @@ package java {
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
public open fun remove(): E!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -13247,7 +13247,7 @@ package java {
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
private open fun readResolve(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -13396,7 +13396,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14320,7 +14320,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14382,7 +14382,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<K!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14411,14 +14411,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -14626,14 +14626,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -15376,7 +15376,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15494,7 +15494,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15549,7 +15549,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15598,7 +15598,7 @@ package java {
public open fun pollFirst(): E!
public open fun pollLast(): E!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open fun subSet(/*0*/ p0: E!, /*1*/ p1: E!): java.util.SortedSet<E!>!
@@ -15731,7 +15731,7 @@ package java {
public open override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15866,14 +15866,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -9,7 +9,7 @@ internal abstract class AL : java.util.ArrayList<p.P> {
public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: p.P!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out p.P!>..kotlin.Collection<p.P!>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection<out p.P!>..kotlin.Collection<p.P!>?)): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
@@ -34,9 +34,9 @@ internal abstract class AL : java.util.ArrayList<p.P> {
invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): p.P!
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: p.P!): p.P!
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List<p.P!>!
@@ -61,7 +61,7 @@ internal final class HashMapEx</*0*/ K, /*1*/ V> : java.util.HashMap<K, V>, ExtM
invisible_fake open override /*1*/ /*fake_override*/ fun resize(/*0*/ p0: kotlin.Int): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
invisible_fake open override /*1*/ /*fake_override*/ fun transfer(/*0*/ p0: kotlin.Array<(out) java.util.HashMap.Entry<out kotlin.Any?, out kotlin.Any?>!>!, /*1*/ p1: kotlin.Boolean): kotlin.Unit
invisible_fake open override /*1*/ /*fake_override*/ fun transfer(/*0*/ p0: kotlin.Array<(out) java.util.HashMap.Entry<*, *>!>!, /*1*/ p1: kotlin.Boolean): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun values(): kotlin.Collection<V>
invisible_fake open override /*1*/ /*fake_override*/ fun writeObject(/*0*/ p0: java.io.ObjectOutputStream!): kotlin.Unit
}
@@ -12174,7 +12174,7 @@ package java {
public open override /*1*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out E!>..kotlin.Collection<E!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open fun element(): E!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -12182,8 +12182,8 @@ package java {
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
public open fun remove(): E!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -13238,7 +13238,7 @@ package java {
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
private open fun readResolve(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -13387,7 +13387,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<E!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14311,7 +14311,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14373,7 +14373,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<K!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -14402,14 +14402,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -14617,14 +14617,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -15367,7 +15367,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15485,7 +15485,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15540,7 +15540,7 @@ package java {
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15589,7 +15589,7 @@ package java {
public open fun pollFirst(): E!
public open fun pollLast(): E!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open fun subSet(/*0*/ p0: E!, /*1*/ p1: E!): java.util.SortedSet<E!>!
@@ -15722,7 +15722,7 @@ package java {
public open override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!>
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
@@ -15857,14 +15857,14 @@ package java {
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out V!>..kotlin.Collection<V!>?)): kotlin.Boolean
public open override /*1*/ fun clear(): kotlin.Unit
public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator<V!>!
public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -47,7 +47,7 @@ package b {
public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: java.lang.Integer!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out java.lang.Integer!>..kotlin.Collection<java.lang.Integer!>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection<out java.lang.Integer!>..kotlin.Collection<java.lang.Integer!>?)): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
@@ -72,9 +72,9 @@ package b {
invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): java.lang.Integer!
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: java.lang.Integer!): java.lang.Integer!
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List<java.lang.Integer!>!
@@ -11,7 +11,7 @@ internal final class MyListOfPairs</*0*/ T> : java.util.ArrayList<Pair<T, T>> {
public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: Pair<T, T>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection<out Pair<T, T>!>..kotlin.Collection<Pair<T, T>!>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection<out Pair<T, T>!>..kotlin.Collection<Pair<T, T>!>?)): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean
invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any!
public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
@@ -36,9 +36,9 @@ internal final class MyListOfPairs</*0*/ T> : java.util.ArrayList<Pair<T, T>> {
invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): Pair<T, T>!
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection<out kotlin.Any?>..kotlin.Collection<kotlin.Any?>?)): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: Pair<T, T>!): Pair<T, T>!
public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List<Pair<T, T>!>!
@@ -1,5 +1,7 @@
package test;
import java.util.Collection;
public final class UnboundWildcard {
public final MyClass<?> foo() {
throw new UnsupportedOperationException();
@@ -7,4 +9,8 @@ public final class UnboundWildcard {
public interface MyClass<T extends CharSequence> {
}
public final Collection<?> collection() {
throw new UnsupportedOperationException();
}
}
@@ -2,7 +2,8 @@ package test
public final class UnboundWildcard {
public constructor UnboundWildcard()
public final fun foo(): test.UnboundWildcard.MyClass<out kotlin.CharSequence!>!
public final fun collection(): kotlin.(Mutable)Collection<*>!
public final fun foo(): test.UnboundWildcard.MyClass<*>!
public trait MyClass</*0*/ T : kotlin.CharSequence!> {
}
+1
View File
@@ -11,3 +11,4 @@ class In<in T>
class Out<out T>
class P<X1, X2>
class Rec<T: Rec<T>>
@@ -1,6 +1,6 @@
val foo: List<*> = null!!
/*
psi: List<*>
type: List<Any?>
type: List<*>
null
*/
@@ -3,9 +3,9 @@ fun <T> getT(): T = null!!
val foo = getT<List<*>>()
/*
psi: val foo = getT<List<*>>()
type: List<Any?>
type: List<*>
typeParameter: <out E> defined in kotlin.List
typeProjection: Any?
typeProjection: *
psi: val foo = getT<List<*>>()
type: Any?
*/
@@ -4525,7 +4525,7 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
@TestMetadata("compiler/testData/diagnostics/tests/generics")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({Generics.TpAsReified.class, Generics.VarProjection.class})
@InnerTestClasses({Generics.StarProjections.class, Generics.TpAsReified.class, Generics.VarProjection.class})
@RunWith(JUnit3RunnerWithInners.class)
public static class Generics extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInGenerics() throws Exception {
@@ -4610,6 +4610,33 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("compiler/testData/diagnostics/tests/generics/starProjections")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class StarProjections extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInStarProjections() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/generics/starProjections"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("collectionInheritedFromJava.kt")
public void testCollectionInheritedFromJava() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.kt");
doTest(fileName);
}
@TestMetadata("inheritedFromJava.kt")
public void testInheritedFromJava() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.kt");
doTest(fileName);
}
@TestMetadata("inheritedFromKotlin.kt")
public void testInheritedFromKotlin() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.kt");
doTest(fileName);
}
}
@TestMetadata("compiler/testData/diagnostics/tests/generics/tpAsReified")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -81,7 +81,10 @@ abstract class AbstractJetTypeBindingTest : JetLiteFixture() {
""
}
println("typeProjection: ${projection}${argument.typeProjection.getType().render()}")
print("typeProjection: ")
if (argument.typeProjection.isStarProjection())
printlnWithNoIndent("*")
else printlnWithNoIndent("${projection}${argument.typeProjection.getType().render()}")
print(argument.typeBinding)
return this
}
@@ -258,7 +258,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment {
public void testInOutProjectionDeclarationSite() throws Exception {
doTest(
"In<out Any?>",
"In<*>",
"In<T>",
map("T", "out String")
);
@@ -266,7 +266,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment {
public void testOutInProjectionDeclarationSite() throws Exception {
doTest(
"Out<Any?>",
"Out<*>",
"Out<T>",
map("T", "in String")
);
@@ -387,4 +387,20 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment {
// );
//}
public void testStarProjection() throws Exception {
doTest(
"Rec<*>",
"Rec<*>",
map("T", "String")
);
}
public void testStarProjectionOut() throws Exception {
doTest(
"Out<*>",
"Out<*>",
map("T", "String")
);
}
}
@@ -72,6 +72,7 @@ private fun TypeProjection.toTypeArgument(typeParameter: TypeParameterDescriptor
public fun approximateCapturedTypesIfNecessary(typeProjection: TypeProjection?): TypeProjection? {
if (typeProjection == null) return null
if (typeProjection.isStarProjection()) return typeProjection
val type = typeProjection.getType()
if (!TypeUtils.containsSpecialType(type, { it.isCaptured() })) {
@@ -165,6 +165,8 @@ public class TypeSubstitutor {
private TypeProjection unsafeSubstitute(@NotNull TypeProjection originalProjection, int recursionDepth) throws SubstitutionException {
assertRecursionDepth(recursionDepth, originalProjection, substitution);
if (originalProjection.isStarProjection()) return originalProjection;
// The type is within the substitution range, i.e. T or T?
JetType type = originalProjection.getType();
Variance originalProjectionKind = originalProjection.getProjectionKind();
@@ -278,7 +280,7 @@ public class TypeSubstitutor {
switch (conflictType(typeParameter.getVariance(), substitutedTypeArgument.getProjectionKind())) {
case NO_CONFLICT:
// if the corresponding type parameter is already co/contra-variant, there's not need for an explicit projection
if (typeParameter.getVariance() != Variance.INVARIANT) {
if (typeParameter.getVariance() != Variance.INVARIANT && !substitutedTypeArgument.isStarProjection()) {
substitutedTypeArgument = new TypeProjectionImpl(Variance.INVARIANT, substitutedTypeArgument.getType());
}
break;
@@ -28,6 +28,8 @@ import org.jetbrains.kotlin.utils.toReadOnlyList
import org.jetbrains.kotlin.types.checker.JetTypeChecker
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.types.isDynamic
import org.jetbrains.kotlin.types.TypeProjection
import org.jetbrains.kotlin.types.TypeProjectionImpl
fun JetType.getContainedTypeParameters(): Collection<TypeParameterDescriptor> {
val declarationDescriptor = getConstructor().getDeclarationDescriptor()
@@ -66,4 +68,8 @@ public fun JetType.isSubtypeOf(superType: JetType): Boolean = JetTypeChecker.DEF
public fun JetType.cannotBeReified(): Boolean = KotlinBuiltIns.isNothingOrNullableNothing(this) || this.isDynamic()
fun TypeProjection.substitute(doSubstitute: (JetType) -> JetType): TypeProjection {
return if (isStarProjection())
this
else TypeProjectionImpl(getProjectionKind(), doSubstitute(getType()))
}
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.resolve.jvm.kotlinSignature.CollectionClassMapping
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
import java.util.LinkedHashSet
import org.jetbrains.kotlin.types.typeUtil.substitute
fun JetType.makeNullable() = TypeUtils.makeNullable(this)
fun JetType.makeNotNullable() = TypeUtils.makeNotNullable(this)
@@ -53,7 +54,7 @@ public fun approximateFlexibleTypes(jetType: JetType, outermost: Boolean = true)
jetType.getAnnotations(),
jetType.getConstructor(),
jetType.isMarkedNullable(),
jetType.getArguments().map { TypeProjectionImpl(it.getProjectionKind(), approximateFlexibleTypes(it.getType(), false)) },
jetType.getArguments().map { it.substitute { type -> approximateFlexibleTypes(type, false)} },
ErrorUtils.createErrorScope("This type is not supposed to be used in member resolution", true)
)
}
@@ -0,0 +1,9 @@
class C<T : C<T>>
trait Base {
fun foo(c: C<*>)
}
class Derived : Base {
<caret>
}
@@ -0,0 +1,11 @@
class C<T : C<T>>
trait Base {
fun foo(c: C<*>)
}
class Derived : Base {
override fun foo(c: C<*>) {
<selection><caret>throw UnsupportedOperationException()</selection>
}
}
@@ -1,4 +1,4 @@
// "Cast expression 'x' to 'Foo<out Number>'" "true"
// "Cast expression 'x' to 'Foo<*>'" "true"
trait Foo<T: Number> {
fun foo()
}
@@ -6,6 +6,6 @@ trait Foo<T: Number> {
fun bar(_x: Any) {
var x = _x
if (x is Foo<*>) {
(x as Foo<out Number>)<caret>.foo()
(x as Foo<*>).foo()
}
}
@@ -1,4 +1,4 @@
// "Cast expression 'x' to 'Foo<out Number>'" "true"
// "Cast expression 'x' to 'Foo<*>'" "true"
trait Foo<T: Number> {
fun foo()
}
@@ -197,4 +197,8 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest {
public void testLocalClass() {
doImplementFileTest();
}
public void testStarProjections() {
doImplementFileTest();
}
}