Update typing rules for class literal expressions.

C::class : KClass<C>
expr: T => expr::class : KClass<out T>

NB: this means Obj::class : KClass<out Obj> for object Obj.
This commit is contained in:
Dmitry Petrov
2016-12-15 18:25:14 +03:00
parent 9fc3d0838e
commit 33ed98a0d3
16 changed files with 110 additions and 26 deletions
@@ -1,9 +1,9 @@
package
public val fail1: kotlin.reflect.KClass<kotlin.String>
public val fail1: kotlin.reflect.KClass<out kotlin.String>
public val fail2: kotlin.reflect.KClass<kotlin.String?>
public val fail3: kotlin.reflect.KClass<C.Companion>
public val fail4: kotlin.reflect.KClass<C.Companion>
public val fail3: kotlin.reflect.KClass<out C.Companion>
public val fail4: kotlin.reflect.KClass<out C.Companion>
public val ok1: kotlin.reflect.KClass<C>
public val ok2: kotlin.reflect.KClass<C.Companion>
public val ok3: kotlin.reflect.KClass<O>