[FIR] Fix computeTypeArguments() & add diagnostic for type args

This commit is contained in:
Nick
2020-07-07 12:10:19 +03:00
committed by Mikhail Glukhikh
parent 8772fabc4f
commit a5f34a880c
14 changed files with 94 additions and 12 deletions
@@ -1,4 +1,4 @@
fun test() {
fun <T> foo(){}
foo<in Int>()
foo<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>in Int<!>>()
}
@@ -6,10 +6,10 @@ fun <A, B, C> getTTT(x : Any) {}
fun foo(a : Any?) {}
public fun main() {
getT<*>()
getT<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>>()
<!UNRESOLVED_REFERENCE!>ggetT<!><*>()
getTT<*, *>()
getTT<*, Int>()
getTT<Int, *>()
foo(getTTT<Int, *, Int>(1))
getTT<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>, <!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>>()
getTT<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>, Int>()
getTT<Int, <!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>>()
foo(getTTT<Int, <!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>, Int>(1))
}
@@ -19,5 +19,5 @@ class A {
}
fun test4(a: A) {
a.bar<out out Int>()
a.bar<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out out Int<!>>()
}
@@ -1,4 +1,4 @@
// !WITH_NEW_INFERENCE
// NI_EXPECTED_FILE
val unwrapped = some.<!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>cabc<!><!UNRESOLVED_REFERENCE!><!SYNTAX!>$Wrapper<!><out Any>::unwrap<!>
val unwrapped = some.<!SYNTAX!><<!><!UNRESOLVED_REFERENCE!>cabc<!><!UNRESOLVED_REFERENCE!><!SYNTAX!>$Wrapper<!><<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out Any<!>>::unwrap<!>
@@ -2,5 +2,5 @@ class In<in T>(val x: Any)
typealias InAlias<T> = In<T>
val test1 = In<out String>("")
val test2 = InAlias<out String>("")
val test1 = In<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out String<!>>("")
val test2 = InAlias<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out String<!>>("")
@@ -11,5 +11,5 @@ typealias CT<T> = C<T>
val test1 = CStar()
val test2 = CIn()
val test3 = COut()
val test4 = CT<*>()
val test4 = CT<<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>*<!>>()
val test5 = CT<CT<*>>()