UNUSED_TYPEALIAS_PARAMETER: special diagnostic for typealias parameters
explicitly telling that such type parameters are not used in type checking. Move typealias-related utility functions on types to TypeUtils.kt.
This commit is contained in:
@@ -3,7 +3,7 @@ object AnObject {
|
||||
fun foo() = "OK"
|
||||
}
|
||||
|
||||
typealias GenericTestObject<T> = AnObject
|
||||
typealias GenericTestObject<<!UNUSED_TYPEALIAS_PARAMETER!>T<!>> = AnObject
|
||||
|
||||
val test11: AnObject = GenericTestObject
|
||||
val test12: GenericTestObject<*> = GenericTestObject
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// !DIAGNOSTICS: -UNUSED_TYPEALIAS_PARAMETER
|
||||
|
||||
typealias WithVariance<<!VARIANCE_ON_TYPE_PARAMETER_NOT_ALLOWED!>in<!> X, <!VARIANCE_ON_TYPE_PARAMETER_NOT_ALLOWED!>out<!> Y> = Int
|
||||
typealias WithBounds1<T : <!BOUND_ON_TYPE_ALIAS_PARAMETER_NOT_ALLOWED!>T<!>> = Int
|
||||
typealias WithBounds2<X : <!BOUND_ON_TYPE_ALIAS_PARAMETER_NOT_ALLOWED!>Y<!>, Y : <!BOUND_ON_TYPE_ALIAS_PARAMETER_NOT_ALLOWED!>X<!>> = Int
|
||||
|
||||
@@ -5,16 +5,16 @@ class Inv<T>
|
||||
typealias In1<T> = In<T>
|
||||
typealias In2<T> = In<<!REDUNDANT_PROJECTION!>in<!> T>
|
||||
typealias In3<T> = In<<!CONFLICTING_PROJECTION!>out<!> T>
|
||||
typealias In4<T> = In<*>
|
||||
typealias In4<<!UNUSED_TYPEALIAS_PARAMETER!>T<!>> = In<*>
|
||||
|
||||
typealias Out1<T> = Out<T>
|
||||
typealias Out2<T> = Out<<!CONFLICTING_PROJECTION!>in<!> T>
|
||||
typealias Out3<T> = Out<<!REDUNDANT_PROJECTION!>out<!> T>
|
||||
typealias Out4<T> = Out<*>
|
||||
typealias Out4<<!UNUSED_TYPEALIAS_PARAMETER!>T<!>> = Out<*>
|
||||
|
||||
typealias Inv1<T> = Inv<T>
|
||||
typealias Inv2<T> = Inv<in T>
|
||||
typealias Inv3<T> = Inv<out T>
|
||||
typealias Inv4<T> = Inv<*>
|
||||
typealias Inv4<<!UNUSED_TYPEALIAS_PARAMETER!>T<!>> = Inv<*>
|
||||
|
||||
val inv1: Inv1<Int> = Inv<Int>()
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
typealias ToTypeParam1<T> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>T<!>
|
||||
typealias ToTypeParam2<T> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam1<T><!>
|
||||
typealias ToTypeParam3<T1, T2> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam2<T1><!>
|
||||
typealias ToTypeParam3<T1, <!UNUSED_TYPEALIAS_PARAMETER!>T2<!>> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam2<T1><!>
|
||||
typealias ToTypeParam4 = ToTypeParam1<Any>
|
||||
|
||||
typealias ToFun1 = () -> Unit
|
||||
@@ -9,6 +9,6 @@ typealias ToFun2<T> = (T) -> Unit
|
||||
class Outer {
|
||||
typealias ToTypeParam1<T> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>T<!>
|
||||
typealias ToTypeParam2<T> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam1<T><!>
|
||||
typealias ToTypeParam3<T1, T2> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam2<T1><!>
|
||||
typealias ToTypeParam3<T1, <!UNUSED_TYPEALIAS_PARAMETER!>T2<!>> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam2<T1><!>
|
||||
typealias ToTypeParam4 = ToTypeParam1<Any>
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
typealias Test<T, <!UNUSED_TYPEALIAS_PARAMETER!>X<!>> = List<T>
|
||||
typealias Test2<T, <!UNUSED_TYPEALIAS_PARAMETER!>X<!>> = Test<T, X>
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public typealias Test</*0*/ T, /*1*/ X> = kotlin.collections.List<T>
|
||||
public typealias Test2</*0*/ T, /*1*/ X> = Test<T, X>
|
||||
Reference in New Issue
Block a user