Generate type parameter declarations for property accessors
This requires "scoped" type parameter symbols, because in the ugly world of descriptors property accessors have no type parameters of their own.
This commit is contained in:
@@ -29,18 +29,27 @@ FILE fqName:<root> fileName:/propertyAccessors.kt
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
PROPERTY name:testExt3 type:kotlin.Int visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-testExt3> visibility:public modality:FINAL <> ($receiver:T) returnType:Int flags:
|
||||
FUN name:<get-testExt3> visibility:public modality:FINAL <T> ($receiver:T) returnType:Int flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-testExt3>() on T: Int'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
PROPERTY name:testExt4 type:kotlin.Int visibility:public modality:FINAL flags:var
|
||||
FUN name:<get-testExt4> visibility:public modality:FINAL <> ($receiver:T) returnType:Int flags:
|
||||
FUN name:<get-testExt4> visibility:public modality:FINAL <T> ($receiver:T) returnType:Int flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-testExt4>() on T: Int'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
FUN name:<set-testExt4> visibility:public modality:FINAL <> ($receiver:T, value:kotlin.Int) returnType:Unit flags:
|
||||
FUN name:<set-testExt4> visibility:public modality:FINAL <T> ($receiver:T, value:kotlin.Int) returnType:Unit flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T flags:
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
@@ -91,20 +100,29 @@ FILE fqName:<root> fileName:/propertyAccessors.kt
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:
|
||||
BLOCK_BODY
|
||||
PROPERTY name:testMemExt3 type:kotlin.Int visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-testMemExt3> visibility:public modality:FINAL <> ($this:Host<T>, $receiver:TT) returnType:Int flags:
|
||||
FUN name:<get-testMemExt3> visibility:public modality:FINAL <TT> ($this:Host<T>, $receiver:TT) returnType:Int flags:
|
||||
TYPE_PARAMETER name:TT index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:TT flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-testMemExt3>() on TT: Int'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
PROPERTY name:testMemExt4 type:kotlin.Int visibility:public modality:FINAL flags:var
|
||||
FUN name:<get-testMemExt4> visibility:public modality:FINAL <> ($this:Host<T>, $receiver:TT) returnType:Int flags:
|
||||
FUN name:<get-testMemExt4> visibility:public modality:FINAL <TT> ($this:Host<T>, $receiver:TT) returnType:Int flags:
|
||||
TYPE_PARAMETER name:TT index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:TT flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-testMemExt4>() on TT: Int'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
FUN name:<set-testMemExt4> visibility:public modality:FINAL <> ($this:Host<T>, $receiver:TT, value:kotlin.Int) returnType:Unit flags:
|
||||
FUN name:<set-testMemExt4> visibility:public modality:FINAL <TT> ($this:Host<T>, $receiver:TT, value:kotlin.Int) returnType:Unit flags:
|
||||
TYPE_PARAMETER name:TT index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:TT flags:
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Int flags:
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
fun <T> castFun(x: Any) = x as T
|
||||
|
||||
fun <T> Any.castExtFun() = this as T
|
||||
|
||||
val <T> T.castExtVal
|
||||
get() = this as T
|
||||
|
||||
|
||||
class Host<T> {
|
||||
fun castMemberFun(x: Any) = x as T
|
||||
|
||||
fun <TF> castGenericMemberFun(x: Any) = x as TF
|
||||
|
||||
fun Any.castMemberExtFun() = this as T
|
||||
|
||||
fun <TF> Any.castGenericMemberExtFun() = this as TF
|
||||
|
||||
val Any.castMemberExtVal
|
||||
get() = this as T
|
||||
|
||||
val <TV> TV.castGenericMemberExtVal
|
||||
get() = this as TV
|
||||
}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
FILE fqName:<root> fileName:/castToTypeParameter.kt
|
||||
FUN name:castFun visibility:public modality:FINAL <T> (x:kotlin.Any) returnType:T flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='castFun(Any): T'
|
||||
TYPE_OP type=T origin=CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
FUN name:castExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:T flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='castExtFun() on Any: T'
|
||||
TYPE_OP type=T origin=CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'this@castExtFun: Any' type=kotlin.Any origin=null
|
||||
PROPERTY name:castExtVal type:T visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-castExtVal> visibility:public modality:FINAL <T> ($receiver:T) returnType:T flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-castExtVal>() on T: T'
|
||||
TYPE_OP type=T origin=CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'this@castExtVal: T' type=T origin=null
|
||||
CLASS CLASS name:Host modality:FINAL visibility:public flags:
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Host<T> flags:
|
||||
superClasses:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
CONSTRUCTOR visibility:public <> () returnType:Host<T> flags:
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='Host'
|
||||
FUN name:castMemberFun visibility:public modality:FINAL <> ($this:Host<T>, x:kotlin.Any) returnType:T flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='castMemberFun(Any): T'
|
||||
TYPE_OP type=T origin=CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
FUN name:castGenericMemberFun visibility:public modality:FINAL <TF> ($this:Host<T>, x:kotlin.Any) returnType:TF flags:
|
||||
TYPE_PARAMETER name:TF index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='castGenericMemberFun(Any): TF'
|
||||
TYPE_OP type=TF origin=CAST typeOperand=TF
|
||||
typeOperand: TYPE_PARAMETER name:TF index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
|
||||
FUN name:castMemberExtFun visibility:public modality:FINAL <> ($this:Host<T>, $receiver:kotlin.Any) returnType:T flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='castMemberExtFun() on Any: T'
|
||||
TYPE_OP type=T origin=CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'this@castMemberExtFun: Any' type=kotlin.Any origin=null
|
||||
FUN name:castGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:Host<T>, $receiver:kotlin.Any) returnType:TF flags:
|
||||
TYPE_PARAMETER name:TF index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='castGenericMemberExtFun() on Any: TF'
|
||||
TYPE_OP type=TF origin=CAST typeOperand=TF
|
||||
typeOperand: TYPE_PARAMETER name:TF index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'this@castGenericMemberExtFun: Any' type=kotlin.Any origin=null
|
||||
PROPERTY name:castMemberExtVal type:T visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-castMemberExtVal> visibility:public modality:FINAL <> ($this:Host<T>, $receiver:kotlin.Any) returnType:T flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-castMemberExtVal>() on Any: T'
|
||||
TYPE_OP type=T origin=CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'this@castMemberExtVal: Any' type=kotlin.Any origin=null
|
||||
PROPERTY name:castGenericMemberExtVal type:TV visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:Host<T>, $receiver:TV) returnType:TV flags:
|
||||
TYPE_PARAMETER name:TV index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host<T> flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:TV flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-castGenericMemberExtVal>() on TV: TV'
|
||||
TYPE_OP type=TV origin=CAST typeOperand=TV
|
||||
typeOperand: TYPE_PARAMETER name:TV index:0 variance: upperBounds:[kotlin.Any?]
|
||||
GET_VAR 'this@castGenericMemberExtVal: TV' type=TV origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
@@ -1,6 +1,9 @@
|
||||
FILE fqName:<root> fileName:/genericPropertyCall.kt
|
||||
PROPERTY name:id type:T visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-id> visibility:public modality:FINAL <> ($receiver:T) returnType:T flags:
|
||||
FUN name:<get-id> visibility:public modality:FINAL <T> ($receiver:T) returnType:T flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-id>() on T: T'
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
inline fun <reified T : Any> Any.test1(): T? =
|
||||
if (this is T) this else null
|
||||
|
||||
interface Foo<T>
|
||||
|
||||
inline val <reified T : Any> Foo<T>.asT: T?
|
||||
get() = if (this is T) this else null
|
||||
@@ -0,0 +1,58 @@
|
||||
FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
|
||||
FUN name:test1 visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:T? flags:inline
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='test1() on Any: T?'
|
||||
WHEN type=T? origin=null
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
GET_VAR 'this@test1: Any' type=kotlin.Any origin=null
|
||||
then: TYPE_OP type=T origin=IMPLICIT_CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
GET_VAR 'this@test1: Any' type=kotlin.Any origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Null type=kotlin.Nothing? value=null
|
||||
CLASS INTERFACE name:Foo modality:ABSTRACT visibility:public flags:
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Foo<T> flags:
|
||||
superClasses:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
PROPERTY name:asT type:T? visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-asT> visibility:public modality:FINAL <T> ($receiver:Foo<T>) returnType:T? flags:inline
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:Foo<T> flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-asT>() on Foo<T>: T?'
|
||||
WHEN type=T? origin=null
|
||||
BRANCH
|
||||
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
GET_VAR 'this@asT: Foo<T>' type=Foo<T> origin=null
|
||||
then: TYPE_OP type=T origin=IMPLICIT_CAST typeOperand=T
|
||||
typeOperand: TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
GET_VAR 'this@asT: Foo<T>' type=Foo<T> origin=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CONST Null type=kotlin.Nothing? value=null
|
||||
@@ -0,0 +1,17 @@
|
||||
inline fun <reified T : Any> classRefFun() = T::class
|
||||
|
||||
inline fun <reified T : Any> Any.classRefExtFun() = T::class
|
||||
|
||||
inline val <reified T : Any> T.classRefExtVal
|
||||
get() = T::class
|
||||
|
||||
|
||||
class Host {
|
||||
inline fun <reified TF : Any> classRefGenericMemberFun() = TF::class
|
||||
|
||||
inline fun <reified TF : Any> Any.classRefGenericMemberExtFun() = TF::class
|
||||
|
||||
inline val <reified TV : Any> TV.classRefGenericMemberExtVal
|
||||
get() = TV::class
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
|
||||
FUN name:classRefFun visibility:public modality:FINAL <T> () returnType:KClass<T> flags:inline
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='classRefFun(): KClass<T>'
|
||||
CLASS_REFERENCE '<reified T : Any>' type=kotlin.reflect.KClass<T>
|
||||
FUN name:classRefExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:KClass<T> flags:inline
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='classRefExtFun() on Any: KClass<T>'
|
||||
CLASS_REFERENCE '<reified T : Any>' type=kotlin.reflect.KClass<T>
|
||||
PROPERTY name:classRefExtVal type:kotlin.reflect.KClass<T> visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-classRefExtVal> visibility:public modality:FINAL <T> ($receiver:T) returnType:KClass<T> flags:inline
|
||||
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-classRefExtVal>() on T: KClass<T>'
|
||||
CLASS_REFERENCE '<reified T : Any>' type=kotlin.reflect.KClass<T>
|
||||
CLASS CLASS name:Host modality:FINAL visibility:public flags:
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Host flags:
|
||||
superClasses:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
CONSTRUCTOR visibility:public <> () returnType:Host flags:
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='Host'
|
||||
FUN name:classRefGenericMemberFun visibility:public modality:FINAL <TF> ($this:Host) returnType:KClass<TF> flags:inline
|
||||
TYPE_PARAMETER name:TF index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='classRefGenericMemberFun(): KClass<TF>'
|
||||
CLASS_REFERENCE '<reified TF : Any>' type=kotlin.reflect.KClass<TF>
|
||||
FUN name:classRefGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:Host, $receiver:kotlin.Any) returnType:KClass<TF> flags:inline
|
||||
TYPE_PARAMETER name:TF index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='classRefGenericMemberExtFun() on Any: KClass<TF>'
|
||||
CLASS_REFERENCE '<reified TF : Any>' type=kotlin.reflect.KClass<TF>
|
||||
PROPERTY name:classRefGenericMemberExtVal type:kotlin.reflect.KClass<TV> visibility:public modality:FINAL flags:val
|
||||
FUN name:<get-classRefGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:Host, $receiver:TV) returnType:KClass<TV> flags:inline
|
||||
TYPE_PARAMETER name:TV index:0 variance: upperBounds:[kotlin.Any]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:Host flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:TV flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-classRefGenericMemberExtVal>() on TV: KClass<TV>'
|
||||
CLASS_REFERENCE '<reified TV : Any>' type=kotlin.reflect.KClass<TV>
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
||||
overridden:
|
||||
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
@@ -50,12 +50,18 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
||||
TYPEALIAS typealias CInt32Var = CInt32VarX<Int> type=CInt32VarX<kotlin.Int>
|
||||
PROPERTY name:value type:T_INT visibility:public modality:FINAL flags:var
|
||||
FUN name:<get-value> visibility:public modality:FINAL <> ($receiver:CInt32VarX<T_INT>) returnType:T_INT flags:
|
||||
FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:CInt32VarX<T_INT>) returnType:T_INT flags:
|
||||
TYPE_PARAMETER name:T_INT index:0 variance: upperBounds:[kotlin.Int]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Int modality:FINAL visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:CInt32VarX<T_INT> flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-value>() on CInt32VarX<T_INT>: T_INT'
|
||||
CALL 'TODO(): Nothing' type=kotlin.Nothing origin=null
|
||||
FUN name:<set-value> visibility:public modality:FINAL <> ($receiver:CInt32VarX<T_INT>, value:T_INT) returnType:Unit flags:
|
||||
FUN name:<set-value> visibility:public modality:FINAL <T_INT> ($receiver:CInt32VarX<T_INT>, value:T_INT) returnType:Unit flags:
|
||||
TYPE_PARAMETER name:T_INT index:0 variance: upperBounds:[kotlin.Int]
|
||||
superClassifiers:
|
||||
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Int modality:FINAL visibility:public flags:
|
||||
$receiver: VALUE_PARAMETER name:<this> type:CInt32VarX<T_INT> flags:
|
||||
VALUE_PARAMETER name:value index:0 type:T_INT flags:
|
||||
BLOCK_BODY
|
||||
|
||||
Reference in New Issue
Block a user