Rewritten captured type approximation test
Approximation bounds may be non-trivial both (in this case we ignore 'in' projection); no need for special interpretation of 'Nothing?'
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
class Contr<in T>
|
||||
|
||||
fun foo<T>(a: Contr<T>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Contr<Any?>
|
||||
// upper: Contr<Int>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Contr<Int>
|
||||
// upper: Contr<Nothing>
|
||||
@@ -1,11 +0,0 @@
|
||||
class Cov<out T>
|
||||
|
||||
fun foo<T>(a: Cov<T>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Cov<Int>
|
||||
// upper: Cov<Any?>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Cov<Nothing>
|
||||
// upper: Cov<Int>
|
||||
@@ -0,0 +1,10 @@
|
||||
// declarations
|
||||
|
||||
class Inv<T>
|
||||
class Out<out T>
|
||||
class In<in T>
|
||||
|
||||
class Inv2<T, R>
|
||||
class Fun<in T, out R>
|
||||
|
||||
fun <T, R> foo(): #TestType# = throw Exception()
|
||||
@@ -1,11 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Inv<T>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<in Int>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<out Int>
|
||||
@@ -1,12 +0,0 @@
|
||||
class Cov<out T>
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Cov<Inv<T>>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Cov<Nothing>
|
||||
// upper: Cov<Inv<in Int>>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Cov<Nothing>
|
||||
// upper: Cov<Inv<out Int>>
|
||||
@@ -1,11 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Inv<Inv<T>>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<out Inv<in Int>>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<out Inv<out Int>>
|
||||
@@ -1,11 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Inv<Inv<Inv<T>>>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<out Inv<out Inv<in Int>>>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<out Inv<out Inv<out Int>>>
|
||||
@@ -0,0 +1,279 @@
|
||||
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<T?>
|
||||
in Int. lower: Out<Int?>; upper: Out<Any?>; substitution: Out<Any?>
|
||||
out Int. lower: Out<Nothing?>; upper: Out<Int?>; substitution: Out<Int?>
|
||||
|
||||
Inv<T?>
|
||||
in Int. lower: Nothing; upper: Inv<in Int?>; substitution: Inv<in Int?>
|
||||
out Int. lower: Nothing; upper: Inv<out Int?>; substitution: Inv<out Int?>
|
||||
|
||||
Inv<in T?>
|
||||
in Int. lower: Inv<Any?>; upper: Inv<in Int?>; substitution: Inv<in Int?>
|
||||
out Int. lower: Inv<in Int?>; upper: Inv<in Nothing?>; substitution: Inv<in Int?>
|
||||
|
||||
Inv<out T?>
|
||||
in Int. lower: Inv<out Int?>; upper: Inv<out Any?>; substitution: Inv<out Int?>
|
||||
out Int. lower: Inv<out Nothing?>; upper: Inv<out Int?>; substitution: Inv<out Int?>
|
||||
|
||||
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?>>
|
||||
|
||||
In<Out<T?>>
|
||||
in Int. lower: In<Out<Any?>>; upper: In<Out<Int?>>; substitution: In<Out<Any?>>
|
||||
out Int. lower: In<Out<Int?>>; upper: In<Out<Nothing?>>; substitution: In<Out<Int?>>
|
||||
|
||||
In<Inv<T?>>
|
||||
in Int. lower: In<Inv<in Int?>>; upper: In<Nothing>; substitution: In<Inv<in Int?>>
|
||||
out Int. lower: In<Inv<out Int?>>; upper: In<Nothing>; substitution: In<Inv<out Int?>>
|
||||
|
||||
In<Inv<in T?>>
|
||||
in Int. lower: In<Inv<in Int?>>; upper: In<Inv<Any?>>; substitution: In<Inv<in Int?>>
|
||||
out Int. lower: In<Inv<in Nothing?>>; upper: In<Inv<in Int?>>; substitution: In<Inv<in Int?>>
|
||||
|
||||
In<Inv<out T?>>
|
||||
in Int. lower: In<Inv<out Any?>>; upper: In<Inv<out Int?>>; substitution: In<Inv<out Int?>>
|
||||
out Int. lower: In<Inv<out Int?>>; upper: In<Inv<out Nothing?>>; substitution: In<Inv<out Int?>>
|
||||
|
||||
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<Out<T?>>
|
||||
in Int. lower: Out<Out<Int?>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
|
||||
out Int. lower: Out<Out<Nothing?>>; upper: Out<Out<Int?>>; substitution: Out<Out<Int?>>
|
||||
|
||||
Out<Inv<T?>>
|
||||
in Int. lower: Out<Nothing>; upper: Out<Inv<in Int?>>; substitution: Out<Inv<in Int?>>
|
||||
out Int. lower: Out<Nothing>; upper: Out<Inv<out Int?>>; substitution: Out<Inv<out Int?>>
|
||||
|
||||
Out<Inv<in T?>>
|
||||
in Int. lower: Out<Inv<Any?>>; upper: Out<Inv<in Int?>>; substitution: Out<Inv<in Int?>>
|
||||
out Int. lower: Out<Inv<in Int?>>; upper: Out<Inv<in Nothing?>>; substitution: Out<Inv<in Int?>>
|
||||
|
||||
Out<Inv<out T?>>
|
||||
in Int. lower: Out<Inv<out Int?>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<out Int?>>
|
||||
out Int. lower: Out<Inv<out Nothing?>>; upper: Out<Inv<out Int?>>; substitution: Out<Inv<out Int?>>
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<Out<T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Out<Int?>>; substitution: Inv<Out<Int?>>
|
||||
|
||||
Inv<Inv<T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<in Int?>>; substitution: Inv<Inv<in Int?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Int?>>; substitution: Inv<Inv<out Int?>>
|
||||
|
||||
Inv<Inv<in T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<in Int?>>; substitution: Inv<Inv<in Int?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<in Nothing?>>; substitution: Inv<Inv<in Int?>>
|
||||
|
||||
Inv<Inv<out T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<out Int?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Int?>>; substitution: Inv<Inv<out Int?>>
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<in Out<T?>>
|
||||
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int?>>; substitution: Inv<in Out<Any?>>
|
||||
out Int. lower: Inv<in Out<Int?>>; upper: Inv<in Out<Nothing?>>; substitution: Inv<in Out<Int?>>
|
||||
|
||||
Inv<in Inv<T?>>
|
||||
in Int. lower: Inv<in Inv<in Int?>>; upper: Inv<out Any?>; substitution: Inv<in Inv<in Int?>>
|
||||
out Int. lower: Inv<in Inv<out Int?>>; upper: Inv<out Any?>; substitution: Inv<in Inv<out Int?>>
|
||||
|
||||
Inv<in Inv<in T?>>
|
||||
in Int. lower: Inv<in Inv<in Int?>>; upper: Inv<in Inv<Any?>>; substitution: Inv<in Inv<in Int?>>
|
||||
out Int. lower: Inv<in Inv<in Nothing?>>; upper: Inv<in Inv<in Int?>>; substitution: Inv<in Inv<in Int?>>
|
||||
|
||||
Inv<in Inv<out T?>>
|
||||
in Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<out Int?>>; substitution: Inv<in Inv<out Int?>>
|
||||
out Int. lower: Inv<in Inv<out Int?>>; upper: Inv<in Inv<out Nothing?>>; substitution: Inv<in Inv<out Int?>>
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<out Out<T?>>
|
||||
in Int. lower: Inv<out Out<Int?>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<Any?>>
|
||||
out Int. lower: Inv<out Out<Nothing?>>; upper: Inv<out Out<Int?>>; substitution: Inv<out Out<Int?>>
|
||||
|
||||
Inv<out Inv<T?>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<in Int?>>; substitution: Inv<out Inv<in Int?>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Int?>>; substitution: Inv<out Inv<out Int?>>
|
||||
|
||||
Inv<out Inv<in T?>>
|
||||
in Int. lower: Inv<out Inv<Any?>>; upper: Inv<out Inv<in Int?>>; substitution: Inv<out Inv<in Int?>>
|
||||
out Int. lower: Inv<out Inv<in Int?>>; upper: Inv<out Inv<in Nothing?>>; substitution: Inv<out Inv<in Int?>>
|
||||
|
||||
Inv<out Inv<out T?>>
|
||||
in Int. lower: Inv<out Inv<out Int?>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<out Int?>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
|
||||
Inv<out Inv<Out<T?>>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<Any?>>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int?>>>; substitution: Inv<out Inv<Out<Int?>>>
|
||||
|
||||
Inv<in Inv<Inv<T?>>>
|
||||
in Int. lower: Inv<in Inv<out Inv<in Int?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<in Int?>>>
|
||||
out Int. lower: Inv<in Inv<out Inv<out Int?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int?>>>
|
||||
|
||||
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?>>>
|
||||
|
||||
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?>>>
|
||||
out Int. lower: Inv<out Out<Out<Nothing?>>>; upper: Inv<out Out<Out<Int?>>>; substitution: Inv<out Out<Out<Int?>>>
|
||||
|
||||
Out<In<Inv<T?>>>
|
||||
in Int. lower: Out<In<Inv<in Int?>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<in Int?>>>
|
||||
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?>>>
|
||||
out Int. lower: Inv<out In<Out<Int?>>>; upper: Inv<out In<Out<Nothing?>>>; substitution: Inv<out In<Out<Int?>>>
|
||||
|
||||
In<Out<Inv<T?>>>
|
||||
in Int. lower: In<Out<Inv<in Int?>>>; upper: In<Out<Nothing>>; substitution: In<Out<Inv<in Int?>>>
|
||||
out Int. lower: In<Out<Inv<out Int?>>>; upper: In<Out<Nothing>>; substitution: In<Out<Inv<out Int?>>>
|
||||
|
||||
Inv<out Inv<Inv<out Inv<in T?>>>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<out Inv<in Int?>>>>; substitution: Inv<out Inv<Inv<out Inv<in Int?>>>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<out Inv<in Nothing?>>>>; substitution: Inv<out Inv<Inv<out Inv<in Int?>>>>
|
||||
|
||||
Inv<in Out<In<Inv<in T?>>>>
|
||||
in Int. lower: Inv<in Out<In<Inv<Any?>>>>; upper: Inv<in Out<In<Inv<in Int?>>>>; substitution: Inv<in Out<In<Inv<in Int?>>>>
|
||||
out Int. lower: Inv<in Out<In<Inv<in Int?>>>>; upper: Inv<in Out<In<Inv<in Nothing?>>>>; substitution: Inv<in Out<In<Inv<in Int?>>>>
|
||||
|
||||
Inv<in In<Inv<out Inv<in T?>>>>
|
||||
in Int. lower: Inv<in In<Inv<out Inv<Any?>>>>; upper: Inv<in In<Inv<out Inv<in Int?>>>>; substitution: Inv<in In<Inv<out Inv<in Int?>>>>
|
||||
out Int. lower: Inv<in In<Inv<out Inv<in Int?>>>>; upper: Inv<in In<Inv<out Inv<in Nothing?>>>>; substitution: Inv<in In<Inv<out Inv<in Int?>>>>
|
||||
|
||||
Inv<In<In<Inv<in T?>>>>
|
||||
in Int. lower: Nothing; upper: Inv<out In<In<Inv<in Int?>>>>; substitution: Inv<In<In<Inv<in Int?>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out In<In<Inv<in Nothing?>>>>; substitution: Inv<In<In<Inv<in Int?>>>>
|
||||
|
||||
Inv<out Inv<out Inv<out Inv<T?>>>>
|
||||
in Int. lower: Inv<out Inv<out Inv<Nothing>>>; upper: Inv<out Inv<out Inv<out Inv<in Int?>>>>; substitution: Inv<out Inv<out Inv<out Inv<in Int?>>>>
|
||||
out Int. lower: Inv<out Inv<out Inv<Nothing>>>; upper: Inv<out Inv<out Inv<out Inv<out Int?>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int?>>>>
|
||||
|
||||
Inv<out Out<Inv<out Inv<in T?>>>>
|
||||
in Int. lower: Inv<out Out<Inv<out Inv<Any?>>>>; upper: Inv<out Out<Inv<out Inv<in Int?>>>>; substitution: Inv<out Out<Inv<out Inv<in Int?>>>>
|
||||
out Int. lower: Inv<out Out<Inv<out Inv<in Int?>>>>; upper: Inv<out Out<Inv<out Inv<in Nothing?>>>>; substitution: Inv<out Out<Inv<out Inv<in Int?>>>>
|
||||
|
||||
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?>>>>
|
||||
|
||||
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?>>>>
|
||||
out Int. lower: In<Inv<in In<Inv<in Nothing?>>>>; upper: In<Inv<in In<Inv<in Int?>>>>; substitution: In<Inv<in In<Inv<in Int?>>>>
|
||||
|
||||
Out<Inv<in In<Inv<T?>>>>
|
||||
in Int. lower: Out<Inv<in In<Nothing>>>; upper: Out<Inv<in In<Inv<in Int?>>>>; substitution: Out<Inv<in In<Inv<in Int?>>>>
|
||||
out Int. lower: Out<Inv<in In<Nothing>>>; upper: Out<Inv<in In<Inv<out Int?>>>>; substitution: Out<Inv<in In<Inv<out Int?>>>>
|
||||
|
||||
Out<Inv<in Inv<in Inv<T?>>>>
|
||||
in Int. lower: Out<Inv<in Inv<out Any?>>>; upper: Out<Inv<in Inv<in Inv<in Int?>>>>; substitution: Out<Inv<in Inv<in Inv<in Int?>>>>
|
||||
out Int. lower: Out<Inv<in Inv<out Any?>>>; upper: Out<Inv<in Inv<in Inv<out Int?>>>>; substitution: Out<Inv<in Inv<in Inv<out Int?>>>>
|
||||
|
||||
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?>>>>>
|
||||
|
||||
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?>>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Inv<out Out<Inv<in Nothing?>>>>>; substitution: Inv<Inv<Inv<Out<Inv<in Int?>>>>>
|
||||
|
||||
Out<Inv<Out<Out<Inv<out T?>>>>>
|
||||
in Int. lower: Out<Nothing>; upper: Out<Inv<out Out<Out<Inv<out Any?>>>>>; substitution: Out<Inv<Out<Out<Inv<out Int?>>>>>
|
||||
out Int. lower: Out<Nothing>; upper: Out<Inv<out Out<Out<Inv<out Int?>>>>>; substitution: Out<Inv<Out<Out<Inv<out Int?>>>>>
|
||||
|
||||
Inv<In<Inv<in In<Inv<out T?>>>>>
|
||||
in Int. lower: Nothing; upper: Inv<out In<Inv<in In<Inv<out Int?>>>>>; substitution: Inv<In<Inv<in In<Inv<out Int?>>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out In<Inv<in In<Inv<out Nothing?>>>>>; substitution: Inv<In<Inv<in In<Inv<out Int?>>>>>
|
||||
|
||||
Inv<in Inv<out In<Out<Inv<out T?>>>>>
|
||||
in Int. lower: Inv<in Inv<out In<Out<Inv<out Int?>>>>>; upper: Inv<in Inv<out In<Out<Inv<out Any?>>>>>; substitution: Inv<in Inv<out In<Out<Inv<out Int?>>>>>
|
||||
out Int. lower: Inv<in Inv<out In<Out<Inv<out Nothing?>>>>>; upper: Inv<in Inv<out In<Out<Inv<out Int?>>>>>; substitution: Inv<in Inv<out In<Out<Inv<out Int?>>>>>
|
||||
|
||||
Inv<out Out<Inv<in Inv<in Inv<in T?>>>>>
|
||||
in Int. lower: Inv<out Out<Inv<in Inv<in Inv<Any?>>>>>; upper: Inv<out Out<Inv<in Inv<in Inv<in Int?>>>>>; substitution: Inv<out Out<Inv<in Inv<in Inv<in Int?>>>>>
|
||||
out Int. lower: Inv<out Out<Inv<in Inv<in Inv<in Int?>>>>>; upper: Inv<out Out<Inv<in Inv<in Inv<in Nothing?>>>>>; substitution: Inv<out Out<Inv<in Inv<in Inv<in Int?>>>>>
|
||||
|
||||
Out<Out<Inv<Out<Inv<out T?>>>>>
|
||||
in Int. lower: Out<Out<Nothing>>; upper: Out<Out<Inv<out Out<Inv<out Any?>>>>>; substitution: Out<Out<Inv<Out<Inv<out Int?>>>>>
|
||||
out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Inv<out Out<Inv<out Int?>>>>>; substitution: Out<Out<Inv<Out<Inv<out Int?>>>>>
|
||||
|
||||
In<Inv<In<In<Inv<out T?>>>>>
|
||||
in Int. lower: In<Inv<out In<In<Inv<out Any?>>>>>; upper: In<Nothing>; substitution: In<Inv<In<In<Inv<out Int?>>>>>
|
||||
out Int. lower: In<Inv<out In<In<Inv<out Int?>>>>>; upper: In<Nothing>; substitution: In<Inv<In<In<Inv<out Int?>>>>>
|
||||
|
||||
Inv<out Inv<in Inv<Inv<out Inv<out T?>>>>>
|
||||
in Int. lower: Inv<out Inv<in Inv<out Inv<out Inv<out Any?>>>>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<in Inv<Inv<out Inv<out Int?>>>>>
|
||||
out Int. lower: Inv<out Inv<in Inv<out Inv<out Inv<out Int?>>>>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<in Inv<Inv<out Inv<out Int?>>>>>
|
||||
|
||||
In<Inv<in In<In<Inv<out T?>>>>>
|
||||
in Int. lower: In<Inv<in In<In<Inv<out Int?>>>>>; upper: In<Inv<in In<In<Inv<out Any?>>>>>; substitution: In<Inv<in In<In<Inv<out Int?>>>>>
|
||||
out Int. lower: In<Inv<in In<In<Inv<out Nothing?>>>>>; upper: In<Inv<in In<In<Inv<out Int?>>>>>; substitution: In<Inv<in In<In<Inv<out Int?>>>>>
|
||||
|
||||
In<Inv<Out<In<Inv<Inv<T?>>>>>>
|
||||
in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<in Int?>>>>>>
|
||||
out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<Inv<Inv<in Inv<out Inv<out Int?>>>>>>
|
||||
|
||||
In<Inv<out Inv<in Inv<Inv<in Inv<out T?>>>>>>
|
||||
in Int. lower: In<Inv<out Inv<out Any?>>>; upper: In<Inv<out Inv<in Inv<out Inv<in Inv<out Int?>>>>>>; substitution: In<Inv<out Inv<in Inv<Inv<in Inv<out Int?>>>>>>
|
||||
out Int. lower: In<Inv<out Inv<out Any?>>>; upper: In<Inv<out Inv<in Inv<out Inv<in Inv<out Nothing?>>>>>>; substitution: In<Inv<out Inv<in Inv<Inv<in Inv<out Int?>>>>>>
|
||||
|
||||
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<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?>>>>>>
|
||||
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?>>>>>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<in Out<Inv<out Inv<Any?>>>>>>; substitution: Inv<out Inv<Inv<in Out<Inv<out Inv<in Int?>>>>>>
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
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,11 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Inv<T?>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<in Int?>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Nothing
|
||||
// upper: Inv<out Int?>
|
||||
@@ -0,0 +1,279 @@
|
||||
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<T>
|
||||
in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<Any?>
|
||||
out Int. lower: Out<Nothing>; upper: Out<Int>; substitution: Out<Int>
|
||||
|
||||
Inv<T>
|
||||
in Int. lower: Nothing; upper: Inv<in Int>; substitution: Inv<in Int>
|
||||
out Int. lower: Nothing; upper: Inv<out Int>; substitution: Inv<out Int>
|
||||
|
||||
Inv<in T>
|
||||
in Int. lower: Inv<Any?>; upper: Inv<in Int>; substitution: Inv<in Int>
|
||||
out Int. lower: Inv<in Int>; upper: Inv<out Any?>; substitution: Inv<in Int>
|
||||
|
||||
Inv<out T>
|
||||
in Int. lower: Inv<out Int>; upper: Inv<out Any?>; substitution: Inv<out Int>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Int>; substitution: Inv<out Int>
|
||||
|
||||
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?>>
|
||||
|
||||
In<Out<T>>
|
||||
in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<Any?>>
|
||||
out Int. lower: In<Out<Int>>; upper: In<Out<Nothing>>; substitution: In<Out<Int>>
|
||||
|
||||
In<Inv<T>>
|
||||
in Int. lower: In<Inv<in Int>>; upper: In<Nothing>; substitution: In<Inv<in Int>>
|
||||
out Int. lower: In<Inv<out Int>>; upper: In<Nothing>; substitution: In<Inv<out Int>>
|
||||
|
||||
In<Inv<in T>>
|
||||
in Int. lower: In<Inv<in Int>>; upper: In<Inv<Any?>>; substitution: In<Inv<in Int>>
|
||||
out Int. lower: In<Inv<out Any?>>; upper: In<Inv<in Int>>; substitution: In<Inv<in Int>>
|
||||
|
||||
In<Inv<out T>>
|
||||
in Int. lower: In<Inv<out Any?>>; upper: In<Inv<out Int>>; substitution: In<Inv<out Int>>
|
||||
out Int. lower: In<Inv<out Int>>; upper: In<Inv<Nothing>>; substitution: In<Inv<out Int>>
|
||||
|
||||
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<Out<T>>
|
||||
in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
|
||||
out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Int>>; substitution: Out<Out<Int>>
|
||||
|
||||
Out<Inv<T>>
|
||||
in Int. lower: Out<Nothing>; upper: Out<Inv<in Int>>; substitution: Out<Inv<in Int>>
|
||||
out Int. lower: Out<Nothing>; upper: Out<Inv<out Int>>; substitution: Out<Inv<out Int>>
|
||||
|
||||
Out<Inv<in T>>
|
||||
in Int. lower: Out<Inv<Any?>>; upper: Out<Inv<in Int>>; substitution: Out<Inv<in Int>>
|
||||
out Int. lower: Out<Inv<in Int>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Int>>
|
||||
|
||||
Out<Inv<out T>>
|
||||
in Int. lower: Out<Inv<out Int>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<out Int>>
|
||||
out Int. lower: Out<Inv<Nothing>>; upper: Out<Inv<out Int>>; substitution: Out<Inv<out Int>>
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<Out<T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Out<Int>>; substitution: Inv<Out<Int>>
|
||||
|
||||
Inv<Inv<T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<in Int>>; substitution: Inv<Inv<in Int>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Int>>; substitution: Inv<Inv<out Int>>
|
||||
|
||||
Inv<Inv<in T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<in Int>>; substitution: Inv<Inv<in Int>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<in Int>>
|
||||
|
||||
Inv<Inv<out T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<out Int>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Int>>; substitution: Inv<Inv<out Int>>
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<in Out<T>>
|
||||
in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int>>; substitution: Inv<in Out<Any?>>
|
||||
out Int. lower: Inv<in Out<Int>>; upper: Inv<in Out<Nothing>>; substitution: Inv<in Out<Int>>
|
||||
|
||||
Inv<in Inv<T>>
|
||||
in Int. lower: Inv<in Inv<in Int>>; upper: Inv<out Any?>; substitution: Inv<in Inv<in Int>>
|
||||
out Int. lower: Inv<in Inv<out Int>>; upper: Inv<out Any?>; substitution: Inv<in Inv<out Int>>
|
||||
|
||||
Inv<in Inv<in T>>
|
||||
in Int. lower: Inv<in Inv<in Int>>; upper: Inv<in Inv<Any?>>; substitution: Inv<in Inv<in Int>>
|
||||
out Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<in Int>>; substitution: Inv<in Inv<in Int>>
|
||||
|
||||
Inv<in Inv<out T>>
|
||||
in Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<out Int>>; substitution: Inv<in Inv<out Int>>
|
||||
out Int. lower: Inv<in Inv<out Int>>; upper: Inv<in Inv<Nothing>>; substitution: Inv<in Inv<out Int>>
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<out Out<T>>
|
||||
in Int. lower: Inv<out Out<Int>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<Any?>>
|
||||
out Int. lower: Inv<out Out<Nothing>>; upper: Inv<out Out<Int>>; substitution: Inv<out Out<Int>>
|
||||
|
||||
Inv<out Inv<T>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<in Int>>; substitution: Inv<out Inv<in Int>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Int>>; substitution: Inv<out Inv<out Int>>
|
||||
|
||||
Inv<out Inv<in T>>
|
||||
in Int. lower: Inv<out Inv<Any?>>; upper: Inv<out Inv<in Int>>; substitution: Inv<out Inv<in Int>>
|
||||
out Int. lower: Inv<out Inv<in Int>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<in Int>>
|
||||
|
||||
Inv<out Inv<out T>>
|
||||
in Int. lower: Inv<out Inv<out Int>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<out Int>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
|
||||
Inv<out Inv<Out<T>>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<Any?>>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int>>>; substitution: Inv<out Inv<Out<Int>>>
|
||||
|
||||
Inv<in Inv<Inv<T>>>
|
||||
in Int. lower: Inv<in Inv<out Inv<in Int>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<in Int>>>
|
||||
out Int. lower: Inv<in Inv<out Inv<out Int>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int>>>
|
||||
|
||||
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?>>>
|
||||
|
||||
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?>>>
|
||||
out Int. lower: Inv<out Out<Out<Nothing>>>; upper: Inv<out Out<Out<Int>>>; substitution: Inv<out Out<Out<Int>>>
|
||||
|
||||
Out<In<Inv<T>>>
|
||||
in Int. lower: Out<In<Inv<in Int>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<in Int>>>
|
||||
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?>>>
|
||||
out Int. lower: Inv<out In<Out<Int>>>; upper: Inv<out In<Out<Nothing>>>; substitution: Inv<out In<Out<Int>>>
|
||||
|
||||
In<Out<Inv<T>>>
|
||||
in Int. lower: In<Out<Inv<in Int>>>; upper: In<Out<Nothing>>; substitution: In<Out<Inv<in Int>>>
|
||||
out Int. lower: In<Out<Inv<out Int>>>; upper: In<Out<Nothing>>; substitution: In<Out<Inv<out Int>>>
|
||||
|
||||
Inv<out Inv<Inv<out Inv<in T>>>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<out Inv<in Int>>>>; substitution: Inv<out Inv<Inv<out Inv<in Int>>>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<out Inv<out Any?>>>>; substitution: Inv<out Inv<Inv<out Inv<in Int>>>>
|
||||
|
||||
Inv<in Out<In<Inv<in T>>>>
|
||||
in Int. lower: Inv<in Out<In<Inv<Any?>>>>; upper: Inv<in Out<In<Inv<in Int>>>>; substitution: Inv<in Out<In<Inv<in Int>>>>
|
||||
out Int. lower: Inv<in Out<In<Inv<in Int>>>>; upper: Inv<in Out<In<Inv<out Any?>>>>; substitution: Inv<in Out<In<Inv<in Int>>>>
|
||||
|
||||
Inv<in In<Inv<out Inv<in T>>>>
|
||||
in Int. lower: Inv<in In<Inv<out Inv<Any?>>>>; upper: Inv<in In<Inv<out Inv<in Int>>>>; substitution: Inv<in In<Inv<out Inv<in Int>>>>
|
||||
out Int. lower: Inv<in In<Inv<out Inv<in Int>>>>; upper: Inv<in In<Inv<out Inv<out Any?>>>>; substitution: Inv<in In<Inv<out Inv<in Int>>>>
|
||||
|
||||
Inv<In<In<Inv<in T>>>>
|
||||
in Int. lower: Nothing; upper: Inv<out In<In<Inv<in Int>>>>; substitution: Inv<In<In<Inv<in Int>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out In<In<Inv<out Any?>>>>; substitution: Inv<In<In<Inv<in Int>>>>
|
||||
|
||||
Inv<out Inv<out Inv<out Inv<T>>>>
|
||||
in Int. lower: Inv<out Inv<out Inv<Nothing>>>; upper: Inv<out Inv<out Inv<out Inv<in Int>>>>; substitution: Inv<out Inv<out Inv<out Inv<in Int>>>>
|
||||
out Int. lower: Inv<out Inv<out Inv<Nothing>>>; upper: Inv<out Inv<out Inv<out Inv<out Int>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int>>>>
|
||||
|
||||
Inv<out Out<Inv<out Inv<in T>>>>
|
||||
in Int. lower: Inv<out Out<Inv<out Inv<Any?>>>>; upper: Inv<out Out<Inv<out Inv<in Int>>>>; substitution: Inv<out Out<Inv<out Inv<in Int>>>>
|
||||
out Int. lower: Inv<out Out<Inv<out Inv<in Int>>>>; upper: Inv<out Out<Inv<out Inv<out Any?>>>>; substitution: Inv<out Out<Inv<out Inv<in Int>>>>
|
||||
|
||||
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?>>>>
|
||||
|
||||
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>>>>
|
||||
out Int. lower: In<Inv<in In<Inv<out Any?>>>>; upper: In<Inv<in In<Inv<in Int>>>>; substitution: In<Inv<in In<Inv<in Int>>>>
|
||||
|
||||
Out<Inv<in In<Inv<T>>>>
|
||||
in Int. lower: Out<Inv<in In<Nothing>>>; upper: Out<Inv<in In<Inv<in Int>>>>; substitution: Out<Inv<in In<Inv<in Int>>>>
|
||||
out Int. lower: Out<Inv<in In<Nothing>>>; upper: Out<Inv<in In<Inv<out Int>>>>; substitution: Out<Inv<in In<Inv<out Int>>>>
|
||||
|
||||
Out<Inv<in Inv<in Inv<T>>>>
|
||||
in Int. lower: Out<Inv<in Inv<out Any?>>>; upper: Out<Inv<in Inv<in Inv<in Int>>>>; substitution: Out<Inv<in Inv<in Inv<in Int>>>>
|
||||
out Int. lower: Out<Inv<in Inv<out Any?>>>; upper: Out<Inv<in Inv<in Inv<out Int>>>>; substitution: Out<Inv<in Inv<in Inv<out Int>>>>
|
||||
|
||||
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?>>>>>
|
||||
|
||||
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>>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Inv<out Out<Inv<out Any?>>>>>; substitution: Inv<Inv<Inv<Out<Inv<in Int>>>>>
|
||||
|
||||
Out<Inv<Out<Out<Inv<out T>>>>>
|
||||
in Int. lower: Out<Nothing>; upper: Out<Inv<out Out<Out<Inv<out Any?>>>>>; substitution: Out<Inv<Out<Out<Inv<out Int>>>>>
|
||||
out Int. lower: Out<Nothing>; upper: Out<Inv<out Out<Out<Inv<out Int>>>>>; substitution: Out<Inv<Out<Out<Inv<out Int>>>>>
|
||||
|
||||
Inv<In<Inv<in In<Inv<out T>>>>>
|
||||
in Int. lower: Nothing; upper: Inv<out In<Inv<in In<Inv<out Int>>>>>; substitution: Inv<In<Inv<in In<Inv<out Int>>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out In<Inv<in In<Inv<Nothing>>>>>; substitution: Inv<In<Inv<in In<Inv<out Int>>>>>
|
||||
|
||||
Inv<in Inv<out In<Out<Inv<out T>>>>>
|
||||
in Int. lower: Inv<in Inv<out In<Out<Inv<out Int>>>>>; upper: Inv<in Inv<out In<Out<Inv<out Any?>>>>>; substitution: Inv<in Inv<out In<Out<Inv<out Int>>>>>
|
||||
out Int. lower: Inv<in Inv<out In<Out<Inv<Nothing>>>>>; upper: Inv<in Inv<out In<Out<Inv<out Int>>>>>; substitution: Inv<in Inv<out In<Out<Inv<out Int>>>>>
|
||||
|
||||
Inv<out Out<Inv<in Inv<in Inv<in T>>>>>
|
||||
in Int. lower: Inv<out Out<Inv<in Inv<in Inv<Any?>>>>>; upper: Inv<out Out<Inv<in Inv<in Inv<in Int>>>>>; substitution: Inv<out Out<Inv<in Inv<in Inv<in Int>>>>>
|
||||
out Int. lower: Inv<out Out<Inv<in Inv<in Inv<in Int>>>>>; upper: Inv<out Out<Inv<in Inv<in Inv<out Any?>>>>>; substitution: Inv<out Out<Inv<in Inv<in Inv<in Int>>>>>
|
||||
|
||||
Out<Out<Inv<Out<Inv<out T>>>>>
|
||||
in Int. lower: Out<Out<Nothing>>; upper: Out<Out<Inv<out Out<Inv<out Any?>>>>>; substitution: Out<Out<Inv<Out<Inv<out Int>>>>>
|
||||
out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Inv<out Out<Inv<out Int>>>>>; substitution: Out<Out<Inv<Out<Inv<out Int>>>>>
|
||||
|
||||
In<Inv<In<In<Inv<out T>>>>>
|
||||
in Int. lower: In<Inv<out In<In<Inv<out Any?>>>>>; upper: In<Nothing>; substitution: In<Inv<In<In<Inv<out Int>>>>>
|
||||
out Int. lower: In<Inv<out In<In<Inv<out Int>>>>>; upper: In<Nothing>; substitution: In<Inv<In<In<Inv<out Int>>>>>
|
||||
|
||||
Inv<out Inv<in Inv<Inv<out Inv<out T>>>>>
|
||||
in Int. lower: Inv<out Inv<in Inv<out Inv<out Inv<out Any?>>>>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<in Inv<Inv<out Inv<out Int>>>>>
|
||||
out Int. lower: Inv<out Inv<in Inv<out Inv<out Inv<out Int>>>>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<in Inv<Inv<out Inv<out Int>>>>>
|
||||
|
||||
In<Inv<in In<In<Inv<out T>>>>>
|
||||
in Int. lower: In<Inv<in In<In<Inv<out Int>>>>>; upper: In<Inv<in In<In<Inv<out Any?>>>>>; substitution: In<Inv<in In<In<Inv<out Int>>>>>
|
||||
out Int. lower: In<Inv<in In<In<Inv<Nothing>>>>>; upper: In<Inv<in In<In<Inv<out Int>>>>>; substitution: In<Inv<in In<In<Inv<out Int>>>>>
|
||||
|
||||
In<Inv<Out<In<Inv<Inv<T>>>>>>
|
||||
in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<in Int>>>>>>
|
||||
out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
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>>>>>>
|
||||
out Int. lower: Nothing; upper: Inv<out In<Nothing>>; substitution: Inv<In<Inv<Inv<in Inv<out Inv<out Int>>>>>>
|
||||
|
||||
In<Inv<out Inv<in Inv<Inv<in Inv<out T>>>>>>
|
||||
in Int. lower: In<Inv<out Inv<out Any?>>>; upper: In<Inv<out Inv<in Inv<out Inv<in Inv<out Int>>>>>>; substitution: In<Inv<out Inv<in Inv<Inv<in Inv<out Int>>>>>>
|
||||
out Int. lower: In<Inv<out Inv<out Any?>>>; upper: In<Inv<out Inv<in Inv<out Inv<in Inv<Nothing>>>>>>; substitution: In<Inv<out Inv<in Inv<Inv<in Inv<out Int>>>>>>
|
||||
|
||||
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<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?>>>>>>
|
||||
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>>>>>>
|
||||
in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Inv<in Out<Inv<out Inv<Any?>>>>>>; substitution: Inv<out Inv<Inv<in Out<Inv<out Inv<in Int>>>>>>
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
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>>>>>>
|
||||
@@ -0,0 +1,179 @@
|
||||
In<Fun<T, R>>
|
||||
T = in Int. R = out String. lower: In<Fun<Int, String>>; upper: In<Fun<Any?, Nothing>>; substitution: In<Fun<Int, String>>
|
||||
|
||||
Out<Fun<T, R>>
|
||||
T = in Int. R = out String. lower: Out<Fun<Any?, Nothing>>; upper: Out<Fun<Int, String>>; substitution: Out<Fun<Int, String>>
|
||||
|
||||
Inv<Fun<T, R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv<out Fun<Int, String>>; substitution: Inv<Fun<Int, String>>
|
||||
|
||||
Inv<in Fun<T, R>>
|
||||
T = in Int. R = out String. lower: Inv<in Fun<Int, String>>; upper: Inv<in Fun<Any?, Nothing>>; substitution: Inv<in Fun<Int, String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Fun<In<T>, Inv<R>>
|
||||
T = in Int. R = out String. lower: Fun<In<Int>, Nothing>; upper: Fun<In<Any?>, Inv<out String>>; substitution: Fun<In<Int>, Inv<out String>>
|
||||
|
||||
Fun<In<T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Fun<In<Int>, Inv<in String>>; upper: Fun<In<Any?>, Inv<out Any?>>; substitution: Fun<In<Int>, Inv<in String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
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>>
|
||||
|
||||
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>>
|
||||
|
||||
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>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Fun<Inv<T>, Inv<R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<in Int>, Nothing>; upper: Fun<Nothing, Inv<out String>>; substitution: Fun<Inv<in Int>, Inv<out String>>
|
||||
|
||||
Fun<Inv<T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<in Int>, Inv<in String>>; upper: Fun<Nothing, Inv<out Any?>>; substitution: Fun<Inv<in Int>, Inv<in String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Fun<Inv<in T>, Inv<R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<in Int>, Nothing>; upper: Fun<Inv<Any?>, Inv<out String>>; substitution: Fun<Inv<in Int>, Inv<out String>>
|
||||
|
||||
Fun<Inv<in T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<in Int>, Inv<in String>>; upper: Fun<Inv<Any?>, Inv<out Any?>>; substitution: Fun<Inv<in Int>, Inv<in String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Fun<Inv<out T>, Inv<R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<out Any?>, Nothing>; upper: Fun<Inv<out Int>, Inv<out String>>; substitution: Fun<Inv<out Int>, Inv<out String>>
|
||||
|
||||
Fun<Inv<out T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<out Any?>, Inv<in String>>; upper: Fun<Inv<out Int>, Inv<out Any?>>; substitution: Fun<Inv<out Int>, Inv<in String>>
|
||||
|
||||
Fun<Inv<out T>, Inv<out R>>
|
||||
T = in Int. R = out String. lower: Fun<Inv<out Any?>, Inv<Nothing>>; upper: Fun<Inv<out Int>, Inv<out String>>; substitution: Fun<Inv<out Int>, Inv<out String>>
|
||||
|
||||
In<Inv2<T, R>>
|
||||
T = in Int. R = out String. lower: In<Inv2<in Int, out String>>; upper: In<Nothing>; substitution: In<Inv2<in Int, out String>>
|
||||
|
||||
Out<Inv2<T, R>>
|
||||
T = in Int. R = out String. lower: Out<Nothing>; upper: Out<Inv2<in Int, out String>>; substitution: Out<Inv2<in Int, out String>>
|
||||
|
||||
Inv<Inv2<T, R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv<out Inv2<in Int, out String>>; substitution: Inv<Inv2<in Int, out String>>
|
||||
|
||||
Inv<in Inv2<T, R>>
|
||||
T = in Int. R = out String. lower: Inv<in Inv2<in Int, out String>>; upper: Inv<out Any?>; substitution: Inv<in Inv2<in Int, out String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Inv2<In<T>, Inv<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<In<T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv2<out In<Int>, out Inv<out Any?>>; substitution: Inv2<In<Int>, Inv<in String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
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>>
|
||||
|
||||
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>>
|
||||
|
||||
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>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Inv2<Inv<T>, Inv<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<T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out Inv<out Any?>>; substitution: Inv2<Inv<in Int>, Inv<in String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Inv2<Inv<in T>, Inv<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>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<in Int>, out Inv<out Any?>>; substitution: Inv2<Inv<in Int>, Inv<in String>>
|
||||
|
||||
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?>>
|
||||
|
||||
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>>
|
||||
|
||||
Inv2<Inv<out T>, Inv<R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<out Any?>, out Inv<out String>>; substitution: Inv2<Inv<out Int>, Inv<out String>>
|
||||
|
||||
Inv2<Inv<out T>, Inv<in R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<out Any?>, out Inv<out Any?>>; substitution: Inv2<Inv<out Int>, Inv<in String>>
|
||||
|
||||
Inv2<Inv<out T>, Inv<out R>>
|
||||
T = in Int. R = out String. lower: Nothing; upper: Inv2<out Inv<out Any?>, out Inv<out String>>; substitution: Inv2<Inv<out Int>, Inv<out String>>
|
||||
@@ -0,0 +1,236 @@
|
||||
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<in T?>
|
||||
compiler error
|
||||
|
||||
Inv<in T?>
|
||||
in Int. lower: Inv<Any?>; upper: Inv<in Int?>; substitution: Inv<in Int?>
|
||||
out Int. lower: Inv<in Int?>; upper: Inv<in Nothing?>; substitution: Inv<in Int?>
|
||||
|
||||
Inv<in in T?>
|
||||
compiler error
|
||||
|
||||
Inv<out in T?>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
In<Out<in T?>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in T?>>
|
||||
in Int. lower: In<Inv<in Int?>>; upper: In<Inv<Any?>>; substitution: In<Inv<in Int?>>
|
||||
out Int. lower: In<Inv<in Nothing?>>; upper: In<Inv<in Int?>>; substitution: In<Inv<in Int?>>
|
||||
|
||||
In<Inv<in in T?>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out in T?>>
|
||||
compiler error
|
||||
|
||||
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<Out<in T?>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in T?>>
|
||||
in Int. lower: Out<Inv<Any?>>; upper: Out<Inv<in Int?>>; substitution: Out<Inv<in Int?>>
|
||||
out Int. lower: Out<Inv<in Int?>>; upper: Out<Inv<in Nothing?>>; substitution: Out<Inv<in Int?>>
|
||||
|
||||
Out<Inv<in in T?>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<out in T?>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<Out<in T?>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<in T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<in Int?>>; substitution: Inv<Inv<in Int?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<in Nothing?>>; substitution: Inv<Inv<in Int?>>
|
||||
|
||||
Inv<Inv<in in T?>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<out in T?>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<in Out<in T?>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<in T?>>
|
||||
in Int. lower: Inv<in Inv<in Int?>>; upper: Inv<in Inv<Any?>>; substitution: Inv<in Inv<in Int?>>
|
||||
out Int. lower: Inv<in Inv<in Nothing?>>; upper: Inv<in Inv<in Int?>>; substitution: Inv<in Inv<in Int?>>
|
||||
|
||||
Inv<in Inv<in in T?>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out in T?>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<out Out<in T?>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<in T?>>
|
||||
in Int. lower: Inv<out Inv<Any?>>; upper: Inv<out Inv<in Int?>>; substitution: Inv<out Inv<in Int?>>
|
||||
out Int. lower: Inv<out Inv<in Int?>>; upper: Inv<out Inv<in Nothing?>>; substitution: Inv<out Inv<in Int?>>
|
||||
|
||||
Inv<out Inv<in in T?>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<out in T?>>
|
||||
compiler error
|
||||
|
||||
In<Inv<Out<in T?>>>
|
||||
compiler error
|
||||
|
||||
Out<Out<Out<in T?>>>
|
||||
compiler error
|
||||
|
||||
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?>>>
|
||||
|
||||
Inv<out Inv<Out<in T?>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<Inv<in T?>>>
|
||||
in Int. lower: Inv<in Inv<out Inv<in Int?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<in Int?>>>
|
||||
out Int. lower: Inv<in Inv<out Inv<in Nothing?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<in Int?>>>
|
||||
|
||||
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?>>>
|
||||
|
||||
Inv<out Out<Out<in T?>>>
|
||||
compiler error
|
||||
|
||||
Out<In<Inv<in T?>>>
|
||||
in Int. lower: Out<In<Inv<in Int?>>>; upper: Out<In<Inv<Any?>>>; substitution: Out<In<Inv<in Int?>>>
|
||||
out Int. lower: Out<In<Inv<in Nothing?>>>; upper: Out<In<Inv<in Int?>>>; substitution: Out<In<Inv<in Int?>>>
|
||||
|
||||
Inv<out In<Out<in T?>>>
|
||||
compiler error
|
||||
|
||||
In<Out<Inv<in T?>>>
|
||||
in Int. lower: In<Out<Inv<in Int?>>>; upper: In<Out<Inv<Any?>>>; substitution: In<Out<Inv<in Int?>>>
|
||||
out Int. lower: In<Out<Inv<in Nothing?>>>; upper: In<Out<Inv<in Int?>>>; substitution: In<Out<Inv<in Int?>>>
|
||||
|
||||
Inv<out Inv<Inv<out Inv<in in T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Out<In<Inv<in in T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in In<Inv<out Inv<in in T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<In<Inv<in in T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<out Inv<out Inv<in T?>>>>
|
||||
in Int. lower: Inv<out Inv<out Inv<out Inv<Any?>>>>; upper: Inv<out Inv<out Inv<out Inv<in Int?>>>>; substitution: Inv<out Inv<out Inv<out Inv<in Int?>>>>
|
||||
out Int. lower: Inv<out Inv<out Inv<out Inv<in Int?>>>>; upper: Inv<out Inv<out Inv<out Inv<in Nothing?>>>>; substitution: Inv<out Inv<out Inv<out Inv<in Int?>>>>
|
||||
|
||||
Inv<out Out<Inv<out Inv<in in T?>>>>
|
||||
compiler error
|
||||
|
||||
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?>>>>
|
||||
|
||||
In<Inv<in In<Inv<in in T?>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in In<Inv<in T?>>>>
|
||||
in Int. lower: Out<Inv<in In<Inv<Any?>>>>; upper: Out<Inv<in In<Inv<in Int?>>>>; substitution: Out<Inv<in In<Inv<in Int?>>>>
|
||||
out Int. lower: Out<Inv<in In<Inv<in Int?>>>>; upper: Out<Inv<in In<Inv<in Nothing?>>>>; substitution: Out<Inv<in In<Inv<in Int?>>>>
|
||||
|
||||
Out<Inv<in Inv<in Inv<in T?>>>>
|
||||
in Int. lower: Out<Inv<in Inv<in Inv<Any?>>>>; upper: Out<Inv<in Inv<in Inv<in Int?>>>>; substitution: Out<Inv<in Inv<in Inv<in Int?>>>>
|
||||
out Int. lower: Out<Inv<in Inv<in Inv<in Int?>>>>; upper: Out<Inv<in Inv<in Inv<in Nothing?>>>>; substitution: Out<Inv<in Inv<in Inv<in Int?>>>>
|
||||
|
||||
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?>>>>>
|
||||
|
||||
Inv<Inv<Inv<Out<Inv<in in T?>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<Out<Out<Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<Inv<in In<Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out In<Out<Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Out<Inv<in Inv<in Inv<in in T?>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Out<Inv<Out<Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<In<In<Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<in Inv<Inv<out Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in In<In<Inv<out in T?>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<Out<In<Inv<Inv<in T?>>>>>>
|
||||
in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<in Int?>>>>>>
|
||||
out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<in Int?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
Inv<In<Inv<Inv<in Inv<out Inv<out in T?>>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out Inv<in Inv<Inv<in Inv<out in T?>>>>>>
|
||||
compiler error
|
||||
|
||||
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<In<Inv<Out<Inv<Out<in T?>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<Inv<in Out<Inv<out Inv<in in T?>>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in Inv<Out<Inv<Out<in T?>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<in Inv<in In<In<Out<in T?>>>>>>
|
||||
compiler error
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
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<in T>
|
||||
compiler error
|
||||
|
||||
Inv<in T>
|
||||
in Int. lower: Inv<Any?>; upper: Inv<in Int>; substitution: Inv<in Int>
|
||||
out Int. lower: Inv<in Int>; upper: Inv<out Any?>; substitution: Inv<in Int>
|
||||
|
||||
Inv<in in T>
|
||||
compiler error
|
||||
|
||||
Inv<out in T>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
In<Out<in T>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in T>>
|
||||
in Int. lower: In<Inv<in Int>>; upper: In<Inv<Any?>>; substitution: In<Inv<in Int>>
|
||||
out Int. lower: In<Inv<out Any?>>; upper: In<Inv<in Int>>; substitution: In<Inv<in Int>>
|
||||
|
||||
In<Inv<in in T>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out in T>>
|
||||
compiler error
|
||||
|
||||
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<Out<in T>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in T>>
|
||||
in Int. lower: Out<Inv<Any?>>; upper: Out<Inv<in Int>>; substitution: Out<Inv<in Int>>
|
||||
out Int. lower: Out<Inv<in Int>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Int>>
|
||||
|
||||
Out<Inv<in in T>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<out in T>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<Out<in T>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<in T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<in Int>>; substitution: Inv<Inv<in Int>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<in Int>>
|
||||
|
||||
Inv<Inv<in in T>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<out in T>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<in Out<in T>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<in T>>
|
||||
in Int. lower: Inv<in Inv<in Int>>; upper: Inv<in Inv<Any?>>; substitution: Inv<in Inv<in Int>>
|
||||
out Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<in Int>>; substitution: Inv<in Inv<in Int>>
|
||||
|
||||
Inv<in Inv<in in T>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out in T>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
|
||||
Inv<out Out<in T>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<in T>>
|
||||
in Int. lower: Inv<out Inv<Any?>>; upper: Inv<out Inv<in Int>>; substitution: Inv<out Inv<in Int>>
|
||||
out Int. lower: Inv<out Inv<in Int>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<in Int>>
|
||||
|
||||
Inv<out Inv<in in T>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<out in T>>
|
||||
compiler error
|
||||
|
||||
In<Inv<Out<in T>>>
|
||||
compiler error
|
||||
|
||||
Out<Out<Out<in T>>>
|
||||
compiler error
|
||||
|
||||
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?>>>
|
||||
|
||||
Inv<out Inv<Out<in T>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<Inv<in T>>>
|
||||
in Int. lower: Inv<in Inv<out Inv<in Int>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<in Int>>>
|
||||
out Int. lower: Inv<in Inv<out Inv<out Any?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<in Int>>>
|
||||
|
||||
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?>>>
|
||||
|
||||
Inv<out Out<Out<in T>>>
|
||||
compiler error
|
||||
|
||||
Out<In<Inv<in T>>>
|
||||
in Int. lower: Out<In<Inv<in Int>>>; upper: Out<In<Inv<Any?>>>; substitution: Out<In<Inv<in Int>>>
|
||||
out Int. lower: Out<In<Inv<out Any?>>>; upper: Out<In<Inv<in Int>>>; substitution: Out<In<Inv<in Int>>>
|
||||
|
||||
Inv<out In<Out<in T>>>
|
||||
compiler error
|
||||
|
||||
In<Out<Inv<in T>>>
|
||||
in Int. lower: In<Out<Inv<in Int>>>; upper: In<Out<Inv<Any?>>>; substitution: In<Out<Inv<in Int>>>
|
||||
out Int. lower: In<Out<Inv<out Any?>>>; upper: In<Out<Inv<in Int>>>; substitution: In<Out<Inv<in Int>>>
|
||||
|
||||
Inv<out Inv<Inv<out Inv<in in T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Out<In<Inv<in in T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in In<Inv<out Inv<in in T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<In<Inv<in in T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<out Inv<out Inv<in T>>>>
|
||||
in Int. lower: Inv<out Inv<out Inv<out Inv<Any?>>>>; upper: Inv<out Inv<out Inv<out Inv<in Int>>>>; substitution: Inv<out Inv<out Inv<out Inv<in Int>>>>
|
||||
out Int. lower: Inv<out Inv<out Inv<out Inv<in Int>>>>; upper: Inv<out Inv<out Inv<out Inv<out Any?>>>>; substitution: Inv<out Inv<out Inv<out Inv<in Int>>>>
|
||||
|
||||
Inv<out Out<Inv<out Inv<in in T>>>>
|
||||
compiler error
|
||||
|
||||
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?>>>>
|
||||
|
||||
In<Inv<in In<Inv<in in T>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in In<Inv<in T>>>>
|
||||
in Int. lower: Out<Inv<in In<Inv<Any?>>>>; upper: Out<Inv<in In<Inv<in Int>>>>; substitution: Out<Inv<in In<Inv<in Int>>>>
|
||||
out Int. lower: Out<Inv<in In<Inv<in Int>>>>; upper: Out<Inv<in In<Inv<out Any?>>>>; substitution: Out<Inv<in In<Inv<in Int>>>>
|
||||
|
||||
Out<Inv<in Inv<in Inv<in T>>>>
|
||||
in Int. lower: Out<Inv<in Inv<in Inv<Any?>>>>; upper: Out<Inv<in Inv<in Inv<in Int>>>>; substitution: Out<Inv<in Inv<in Inv<in Int>>>>
|
||||
out Int. lower: Out<Inv<in Inv<in Inv<in Int>>>>; upper: Out<Inv<in Inv<in Inv<out Any?>>>>; substitution: Out<Inv<in Inv<in Inv<in Int>>>>
|
||||
|
||||
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?>>>>>
|
||||
|
||||
Inv<Inv<Inv<Out<Inv<in in T>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<Out<Out<Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<Inv<in In<Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out In<Out<Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Out<Inv<in Inv<in Inv<in in T>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Out<Inv<Out<Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<In<In<Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<in Inv<Inv<out Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in In<In<Inv<out in T>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<Out<In<Inv<Inv<in T>>>>>>
|
||||
in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<in Int>>>>>>
|
||||
out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<in Int>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
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?>>>>>>
|
||||
|
||||
Inv<In<Inv<Inv<in Inv<out Inv<out in T>>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out Inv<in Inv<Inv<in Inv<out in T>>>>>>
|
||||
compiler error
|
||||
|
||||
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<In<Inv<Out<Inv<Out<in T>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<Inv<in Out<Inv<out Inv<in in T>>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in Inv<Out<Inv<Out<in T>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<in Inv<in In<In<Out<in T>>>>>>
|
||||
compiler error
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
In<out T?>
|
||||
compiler error
|
||||
|
||||
Out<out T?>
|
||||
in Int. lower: Out<Int?>; upper: Out<Any?>; substitution: Out<Any?>
|
||||
out Int. lower: Out<Nothing?>; upper: Out<Int?>; substitution: Out<Int?>
|
||||
|
||||
Inv<out T?>
|
||||
in Int. lower: Inv<out Int?>; upper: Inv<out Any?>; substitution: Inv<out Int?>
|
||||
out Int. lower: Inv<out Nothing?>; upper: Inv<out Int?>; substitution: Inv<out Int?>
|
||||
|
||||
Inv<in out T?>
|
||||
compiler error
|
||||
|
||||
Inv<out out T?>
|
||||
compiler error
|
||||
|
||||
In<In<out T?>>
|
||||
compiler error
|
||||
|
||||
In<Out<out T?>>
|
||||
in Int. lower: In<Out<Any?>>; upper: In<Out<Int?>>; substitution: In<Out<Any?>>
|
||||
out Int. lower: In<Out<Int?>>; upper: In<Out<Nothing?>>; substitution: In<Out<Int?>>
|
||||
|
||||
In<Inv<out T?>>
|
||||
in Int. lower: In<Inv<out Any?>>; upper: In<Inv<out Int?>>; substitution: In<Inv<out Int?>>
|
||||
out Int. lower: In<Inv<out Int?>>; upper: In<Inv<out Nothing?>>; substitution: In<Inv<out Int?>>
|
||||
|
||||
In<Inv<in out T?>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out out T?>>
|
||||
compiler error
|
||||
|
||||
Out<In<out T?>>
|
||||
compiler error
|
||||
|
||||
Out<Out<out T?>>
|
||||
in Int. lower: Out<Out<Int?>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
|
||||
out Int. lower: Out<Out<Nothing?>>; upper: Out<Out<Int?>>; substitution: Out<Out<Int?>>
|
||||
|
||||
Out<Inv<out T?>>
|
||||
in Int. lower: Out<Inv<out Int?>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<out Int?>>
|
||||
out Int. lower: Out<Inv<out Nothing?>>; upper: Out<Inv<out Int?>>; substitution: Out<Inv<out Int?>>
|
||||
|
||||
Out<Inv<in out T?>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<out out T?>>
|
||||
compiler error
|
||||
|
||||
Inv<In<out T?>>
|
||||
compiler error
|
||||
|
||||
Inv<Out<out T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Out<Int?>>; substitution: Inv<Out<Int?>>
|
||||
|
||||
Inv<Inv<out T?>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<out Int?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Int?>>; substitution: Inv<Inv<out Int?>>
|
||||
|
||||
Inv<Inv<in out T?>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<out out T?>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
out Int. lower: Inv<in Out<Int?>>; upper: Inv<in Out<Nothing?>>; substitution: Inv<in Out<Int?>>
|
||||
|
||||
Inv<in Inv<out T?>>
|
||||
in Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<out Int?>>; substitution: Inv<in Inv<out Int?>>
|
||||
out Int. lower: Inv<in Inv<out Int?>>; upper: Inv<in Inv<out Nothing?>>; substitution: Inv<in Inv<out Int?>>
|
||||
|
||||
Inv<in Inv<in out T?>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out out T?>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
out Int. lower: Inv<out Out<Nothing?>>; upper: Inv<out Out<Int?>>; substitution: Inv<out Out<Int?>>
|
||||
|
||||
Inv<out Inv<out T?>>
|
||||
in Int. lower: Inv<out Inv<out Int?>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<out Int?>>
|
||||
out Int. lower: Inv<out Inv<out Nothing?>>; upper: Inv<out Inv<out Int?>>; substitution: Inv<out Inv<out Int?>>
|
||||
|
||||
Inv<out Inv<in out T?>>
|
||||
compiler error
|
||||
|
||||
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?>>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int?>>>; substitution: Inv<out Inv<Out<Int?>>>
|
||||
|
||||
Inv<in Inv<Inv<out T?>>>
|
||||
in Int. lower: Inv<in Inv<out Inv<out Any?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int?>>>
|
||||
out Int. lower: Inv<in Inv<out Inv<out Int?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int?>>>
|
||||
|
||||
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?>>>
|
||||
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?>>>
|
||||
in Int. lower: Out<In<Inv<out Any?>>>; upper: Out<In<Inv<out Int?>>>; substitution: Out<In<Inv<out Int?>>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
in Int. lower: In<Out<Inv<out Any?>>>; upper: In<Out<Inv<out Int?>>>; substitution: In<Out<Inv<out Int?>>>
|
||||
out Int. lower: In<Out<Inv<out Int?>>>; upper: In<Out<Inv<out Nothing?>>>; substitution: In<Out<Inv<out Int?>>>
|
||||
|
||||
Inv<out Inv<Inv<out Inv<in out T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Out<In<Inv<in out T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in In<Inv<out Inv<in out T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<In<Inv<in out T?>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<out Inv<out Inv<out T?>>>>
|
||||
in Int. lower: Inv<out Inv<out Inv<out Inv<out Int?>>>>; upper: Inv<out Inv<out Inv<out Inv<out Any?>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int?>>>>
|
||||
out Int. lower: Inv<out Inv<out Inv<out Inv<out Nothing?>>>>; upper: Inv<out Inv<out Inv<out Inv<out Int?>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int?>>>>
|
||||
|
||||
Inv<out Out<Inv<out Inv<in out T?>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<out Inv<out In<out T?>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in In<Inv<in out T?>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in In<Inv<out T?>>>>
|
||||
in Int. lower: Out<Inv<in In<Inv<out Int?>>>>; upper: Out<Inv<in In<Inv<out Any?>>>>; substitution: Out<Inv<in In<Inv<out Int?>>>>
|
||||
out Int. lower: Out<Inv<in In<Inv<out Nothing?>>>>; upper: Out<Inv<in In<Inv<out Int?>>>>; substitution: Out<Inv<in In<Inv<out Int?>>>>
|
||||
|
||||
Out<Inv<in Inv<in Inv<out T?>>>>
|
||||
in Int. lower: Out<Inv<in Inv<in Inv<out Int?>>>>; upper: Out<Inv<in Inv<in Inv<out Any?>>>>; substitution: Out<Inv<in Inv<in Inv<out Int?>>>>
|
||||
out Int. lower: Out<Inv<in Inv<in Inv<out Nothing?>>>>; upper: Out<Inv<in Inv<in Inv<out Int?>>>>; substitution: Out<Inv<in Inv<in Inv<out Int?>>>>
|
||||
|
||||
In<In<Inv<In<In<out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<Inv<Out<Inv<in out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<Out<Out<Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<Inv<in In<Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out In<Out<Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Out<Inv<in Inv<in Inv<in out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Out<Inv<Out<Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<In<In<Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<in Inv<Inv<out Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in In<In<Inv<out out T?>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<Out<In<Inv<Inv<out T?>>>>>>
|
||||
in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int?>>>>>>
|
||||
out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int?>>>>>>
|
||||
|
||||
Out<Inv<Inv<out Inv<Inv<in In<out T?>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<Out<In<In<Inv<in In<out T?>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<Inv<Inv<in Inv<out Inv<out out T?>>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out Inv<in Inv<Inv<in Inv<out out T?>>>>>>
|
||||
compiler error
|
||||
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
@@ -0,0 +1,236 @@
|
||||
In<out T>
|
||||
compiler error
|
||||
|
||||
Out<out T>
|
||||
in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<Any?>
|
||||
out Int. lower: Out<Nothing>; upper: Out<Int>; substitution: Out<Int>
|
||||
|
||||
Inv<out T>
|
||||
in Int. lower: Inv<out Int>; upper: Inv<out Any?>; substitution: Inv<out Int>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Int>; substitution: Inv<out Int>
|
||||
|
||||
Inv<in out T>
|
||||
compiler error
|
||||
|
||||
Inv<out out T>
|
||||
compiler error
|
||||
|
||||
In<In<out T>>
|
||||
compiler error
|
||||
|
||||
In<Out<out T>>
|
||||
in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<Any?>>
|
||||
out Int. lower: In<Out<Int>>; upper: In<Out<Nothing>>; substitution: In<Out<Int>>
|
||||
|
||||
In<Inv<out T>>
|
||||
in Int. lower: In<Inv<out Any?>>; upper: In<Inv<out Int>>; substitution: In<Inv<out Int>>
|
||||
out Int. lower: In<Inv<out Int>>; upper: In<Inv<Nothing>>; substitution: In<Inv<out Int>>
|
||||
|
||||
In<Inv<in out T>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out out T>>
|
||||
compiler error
|
||||
|
||||
Out<In<out T>>
|
||||
compiler error
|
||||
|
||||
Out<Out<out T>>
|
||||
in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<Any?>>
|
||||
out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Int>>; substitution: Out<Out<Int>>
|
||||
|
||||
Out<Inv<out T>>
|
||||
in Int. lower: Out<Inv<out Int>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<out Int>>
|
||||
out Int. lower: Out<Inv<Nothing>>; upper: Out<Inv<out Int>>; substitution: Out<Inv<out Int>>
|
||||
|
||||
Out<Inv<in out T>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<out out T>>
|
||||
compiler error
|
||||
|
||||
Inv<In<out T>>
|
||||
compiler error
|
||||
|
||||
Inv<Out<out T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<Any?>>
|
||||
out Int. lower: Nothing; upper: Inv<out Out<Int>>; substitution: Inv<Out<Int>>
|
||||
|
||||
Inv<Inv<out T>>
|
||||
in Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<out Int>>
|
||||
out Int. lower: Nothing; upper: Inv<out Inv<out Int>>; substitution: Inv<Inv<out Int>>
|
||||
|
||||
Inv<Inv<in out T>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<out out T>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
out Int. lower: Inv<in Out<Int>>; upper: Inv<in Out<Nothing>>; substitution: Inv<in Out<Int>>
|
||||
|
||||
Inv<in Inv<out T>>
|
||||
in Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<out Int>>; substitution: Inv<in Inv<out Int>>
|
||||
out Int. lower: Inv<in Inv<out Int>>; upper: Inv<in Inv<Nothing>>; substitution: Inv<in Inv<out Int>>
|
||||
|
||||
Inv<in Inv<in out T>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out out T>>
|
||||
compiler error
|
||||
|
||||
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?>>
|
||||
out Int. lower: Inv<out Out<Nothing>>; upper: Inv<out Out<Int>>; substitution: Inv<out Out<Int>>
|
||||
|
||||
Inv<out Inv<out T>>
|
||||
in Int. lower: Inv<out Inv<out Int>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<out Int>>
|
||||
out Int. lower: Inv<out Inv<Nothing>>; upper: Inv<out Inv<out Int>>; substitution: Inv<out Inv<out Int>>
|
||||
|
||||
Inv<out Inv<in out T>>
|
||||
compiler error
|
||||
|
||||
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?>>>
|
||||
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?>>>
|
||||
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?>>>
|
||||
out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int>>>; substitution: Inv<out Inv<Out<Int>>>
|
||||
|
||||
Inv<in Inv<Inv<out T>>>
|
||||
in Int. lower: Inv<in Inv<out Inv<out Any?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int>>>
|
||||
out Int. lower: Inv<in Inv<out Inv<out Int>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int>>>
|
||||
|
||||
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?>>>
|
||||
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>>>
|
||||
in Int. lower: Out<In<Inv<out Any?>>>; upper: Out<In<Inv<out Int>>>; substitution: Out<In<Inv<out Int>>>
|
||||
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?>>>
|
||||
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>>>
|
||||
in Int. lower: In<Out<Inv<out Any?>>>; upper: In<Out<Inv<out Int>>>; substitution: In<Out<Inv<out Int>>>
|
||||
out Int. lower: In<Out<Inv<out Int>>>; upper: In<Out<Inv<Nothing>>>; substitution: In<Out<Inv<out Int>>>
|
||||
|
||||
Inv<out Inv<Inv<out Inv<in out T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Out<In<Inv<in out T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in In<Inv<out Inv<in out T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<In<Inv<in out T>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<out Inv<out Inv<out T>>>>
|
||||
in Int. lower: Inv<out Inv<out Inv<out Inv<out Int>>>>; upper: Inv<out Inv<out Inv<out Inv<out Any?>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int>>>>
|
||||
out Int. lower: Inv<out Inv<out Inv<out Inv<Nothing>>>>; upper: Inv<out Inv<out Inv<out Inv<out Int>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int>>>>
|
||||
|
||||
Inv<out Out<Inv<out Inv<in out T>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<out Inv<out In<out T>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in In<Inv<in out T>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<in In<Inv<out T>>>>
|
||||
in Int. lower: Out<Inv<in In<Inv<out Int>>>>; upper: Out<Inv<in In<Inv<out Any?>>>>; substitution: Out<Inv<in In<Inv<out Int>>>>
|
||||
out Int. lower: Out<Inv<in In<Inv<Nothing>>>>; upper: Out<Inv<in In<Inv<out Int>>>>; substitution: Out<Inv<in In<Inv<out Int>>>>
|
||||
|
||||
Out<Inv<in Inv<in Inv<out T>>>>
|
||||
in Int. lower: Out<Inv<in Inv<in Inv<out Int>>>>; upper: Out<Inv<in Inv<in Inv<out Any?>>>>; substitution: Out<Inv<in Inv<in Inv<out Int>>>>
|
||||
out Int. lower: Out<Inv<in Inv<in Inv<Nothing>>>>; upper: Out<Inv<in Inv<in Inv<out Int>>>>; substitution: Out<Inv<in Inv<in Inv<out Int>>>>
|
||||
|
||||
In<In<Inv<In<In<out T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<Inv<Inv<Out<Inv<in out T>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Inv<Out<Out<Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<Inv<in In<Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<in Inv<out In<Out<Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Out<Inv<in Inv<in Inv<in out T>>>>>
|
||||
compiler error
|
||||
|
||||
Out<Out<Inv<Out<Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<In<In<Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<out Inv<in Inv<Inv<out Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<in In<In<Inv<out out T>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<Out<In<Inv<Inv<out T>>>>>>
|
||||
in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int>>>>>>
|
||||
out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int>>>>>>
|
||||
|
||||
Out<Inv<Inv<out Inv<Inv<in In<out T>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<Out<In<In<Inv<in In<out T>>>>>>
|
||||
compiler error
|
||||
|
||||
Inv<In<Inv<Inv<in Inv<out Inv<out out T>>>>>>
|
||||
compiler error
|
||||
|
||||
In<Inv<out Inv<in Inv<Inv<in Inv<out out T>>>>>>
|
||||
compiler error
|
||||
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
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?>>>>>>
|
||||
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,11 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Inv<in T>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Inv<Any?>
|
||||
// upper: Inv<in Int>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Inv<in Int>
|
||||
// upper: Inv<out Any?>
|
||||
@@ -1,11 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
fun foo<T>(a: Inv<out T>) {}
|
||||
|
||||
// T captures 'in Int'
|
||||
// lower: Inv<out Int>
|
||||
// upper: Inv<out Any?>
|
||||
|
||||
// T captures 'out Int'
|
||||
// lower: Inv<Nothing>
|
||||
// upper: Inv<out Int>
|
||||
Reference in New Issue
Block a user