Refine type arguments resolution and rendering
In case of type constructors captured parameters from outer classes #KT-5510 Fixed #KT-3112 Fixed #KT-6325 Fixed #KT-408 Fixed #KT-6337 Fixed
This commit is contained in:
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
// PARAM_TYPES: A<T>
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final class A<T : Data> where T : DataEx defined in root package
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> where U : DataExEx defined in A
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
// PARAM_TYPES: A<T>
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final class A<T : Data> where T : DataEx defined in root package
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> where U : DataExEx defined in A
|
||||
@@ -17,4 +17,4 @@ class A<T: Data>(val t: T) where T: DataEx {
|
||||
}
|
||||
}
|
||||
|
||||
private fun <T : Data, U : Data, V : Data> i(a: A<T>, b: A.B<U>, v: V) where T : DataEx, U : DataExEx, V : DataEx = a.t.x + b.u.x + v.x
|
||||
private fun <T : Data, U : Data, V : Data> i(a: A<T>, b: A<T>.B<U>, v: V) where T : DataEx, U : DataExEx, V : DataEx = a.t.x + b.u.x + v.x
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> where U : DataExEx defined in A
|
||||
// PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> where U : DataExEx defined in A
|
||||
// PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// PARAM_TYPES: A<T>
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final class A<T : Data> defined in root package
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> defined in A
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
// PARAM_TYPES: A<T>
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final class A<T : Data> defined in root package
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> defined in A
|
||||
@@ -15,4 +15,4 @@ class A<T: Data>(val t: T) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun <T : Data, U : Data, V : Data> i(a: A<T>, b: A.B<U>, v: V) = a.t.x + b.u.x + v.x
|
||||
private fun <T : Data, U : Data, V : Data> i(a: A<T>, b: A<T>.B<U>, v: V) = a.t.x + b.u.x + v.x
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> defined in A
|
||||
// PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// PARAM_TYPES: A.B<U>
|
||||
// PARAM_TYPES: A<T>.B<U>
|
||||
// PARAM_TYPES: V, Data
|
||||
// PARAM_DESCRIPTOR: public final inner class B<U : Data> defined in A
|
||||
// PARAM_DESCRIPTOR: value-parameter val v: V defined in A.B.foo
|
||||
|
||||
Reference in New Issue
Block a user