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:
@@ -9,12 +9,12 @@ FILE /classReference.kt
|
||||
TYPE_OP origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
CLASS_REFERENCE 'A' type=kotlin.reflect.KClass<A>
|
||||
TYPE_OP origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
GET_CLASS type=kotlin.reflect.KClass<A>
|
||||
GET_CLASS type=kotlin.reflect.KClass<out A>
|
||||
CALL 'constructor A()' type=A origin=null
|
||||
TYPE_OP origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
CALL '<get-java>() on KClass<A>: Class<A>' type=java.lang.Class<A> origin=GET_PROPERTY
|
||||
$receiver: CLASS_REFERENCE 'A' type=kotlin.reflect.KClass<A>
|
||||
TYPE_OP origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
CALL '<get-java>() on KClass<A>: Class<A>' type=java.lang.Class<A> origin=GET_PROPERTY
|
||||
$receiver: GET_CLASS type=kotlin.reflect.KClass<A>
|
||||
CALL '<get-java>() on KClass<out A>: Class<out A>' type=java.lang.Class<out A> origin=GET_PROPERTY
|
||||
$receiver: GET_CLASS type=kotlin.reflect.KClass<out A>
|
||||
CALL 'constructor A()' type=A origin=null
|
||||
|
||||
@@ -24,15 +24,15 @@ FILE /reflectionLiterals.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-test1>(): KClass<A>'
|
||||
GET_FIELD 'test1: KClass<A>' type=kotlin.reflect.KClass<A> origin=null
|
||||
PROPERTY public val test2: kotlin.reflect.KClass<kotlin.Int>
|
||||
FIELD PROPERTY_BACKING_FIELD public val test2: kotlin.reflect.KClass<kotlin.Int>
|
||||
PROPERTY public val test2: kotlin.reflect.KClass<out kotlin.Int>
|
||||
FIELD PROPERTY_BACKING_FIELD public val test2: kotlin.reflect.KClass<out kotlin.Int>
|
||||
EXPRESSION_BODY
|
||||
GET_CLASS type=kotlin.reflect.KClass<kotlin.Int>
|
||||
GET_CLASS type=kotlin.reflect.KClass<out kotlin.Int>
|
||||
CALL '<get-qux>(): Int' type=kotlin.Int origin=GET_PROPERTY
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-test2>(): kotlin.reflect.KClass<kotlin.Int>
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-test2>(): kotlin.reflect.KClass<out kotlin.Int>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-test2>(): KClass<Int>'
|
||||
GET_FIELD 'test2: KClass<Int>' type=kotlin.reflect.KClass<kotlin.Int> origin=null
|
||||
RETURN type=kotlin.Nothing from='<get-test2>(): KClass<out Int>'
|
||||
GET_FIELD 'test2: KClass<out Int>' type=kotlin.reflect.KClass<out kotlin.Int> origin=null
|
||||
PROPERTY public val test3: kotlin.reflect.KFunction1<A, kotlin.Unit>
|
||||
FIELD PROPERTY_BACKING_FIELD public val test3: kotlin.reflect.KFunction1<A, kotlin.Unit>
|
||||
EXPRESSION_BODY
|
||||
|
||||
Reference in New Issue
Block a user