Ruckus
06/27/2018, 5:56 PMval type: Class<T> = ...
val clazz: Class<Any> = ...
val superClazz = clazz.superclass // is Class<in Any!>!
// works fine
if (type == clazz) ...
// won't compile: Operator '==' cannot be applied
if (type == superClazz) ...
Why doesn't that work? Doesn't Class<in Any!>! : Any still hold true?robstoll
06/28/2018, 10:39 AMClass <T> and I guess (cannot check right now) that == for class has no speciel out modifier defined.robstoll
06/28/2018, 10:47 AMClass<T> against Class<Any> works, then there must be an out modifier. In this case I guess the in modifier contradicts this. Class<in Any> <: Any holds but Class<in Any> <: Class<Any> does not.robstoll
06/28/2018, 12:59 PM== is defined on `Any`and expects an Any?. So no out modifier required.robstoll
06/28/2018, 1:02 PMrobstoll
06/28/2018, 1:05 PMval a = Any::class.java.superclass
val b: Any? = arobstoll
06/28/2018, 1:07 PMrobstoll
06/28/2018, 1:13 PM