IrMemberAccessExpression::getTypeArgument

This commit is contained in:
Dmitry Petrov
2016-09-19 13:30:09 +03:00
committed by Dmitry Petrov
parent 89de2a2ebe
commit 7ae6c55ddb
36 changed files with 219 additions and 71 deletions
@@ -0,0 +1,4 @@
// WITH_RUNTIME
fun test1(x: Any) =
x is Array<*> && x.isArrayOf<String>()
@@ -0,0 +1,12 @@
FILE /typeArguments.kt
FUN public fun test1(x: kotlin.Any): kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='test1(Any): Boolean'
WHEN type=kotlin.Boolean origin=ANDAND
if: TYPE_OP origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
then: CALL 'isArrayOf() on Array<*>: Boolean' type=kotlin.Boolean origin=null
<reified T : Any>: String
$receiver: TYPE_OP origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR 'value-parameter x: Any' type=kotlin.Any origin=null
else: CONST Boolean type=kotlin.Boolean value='false'
+3
View File
@@ -3,6 +3,7 @@ FILE /vararg.kt
FIELD PROPERTY_BACKING_FIELD public val test1: kotlin.Array<kotlin.String>
EXPRESSION_BODY
CALL 'arrayOf(vararg String): Array<String>' type=kotlin.Array<kotlin.String> origin=null
<reified T>: String
FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-test1>(): kotlin.Array<kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-test1>(): Array<String>'
@@ -11,6 +12,7 @@ FILE /vararg.kt
FIELD PROPERTY_BACKING_FIELD public val test2: kotlin.Array<kotlin.String>
EXPRESSION_BODY
CALL 'arrayOf(vararg String): Array<String>' type=kotlin.Array<kotlin.String> origin=null
<reified T>: String
elements: VARARG type=Array<out String> varargElementType=String
CONST String type=kotlin.String value='1'
CONST String type=kotlin.String value='2'
@@ -23,6 +25,7 @@ FILE /vararg.kt
FIELD PROPERTY_BACKING_FIELD public val test3: kotlin.Array<kotlin.String>
EXPRESSION_BODY
CALL 'arrayOf(vararg String): Array<String>' type=kotlin.Array<kotlin.String> origin=null
<reified T>: String
elements: VARARG type=Array<out String> varargElementType=String
CONST String type=kotlin.String value='0'
SPREAD_ELEMENT
+4
View File
@@ -23,7 +23,9 @@ FILE /when.kt
GET_VAR 'tmp0_subject: Any?' type=kotlin.Any? origin=null
then: CONST String type=kotlin.String value='String'
if: CALL 'contains(Any) on Iterable<Any>: Boolean' type=kotlin.Boolean origin=IN
<T>: Any
$receiver: CALL 'setOf(): Set<Nothing>' type=kotlin.collections.Set<kotlin.Nothing> origin=null
<T>: Nothing
element: GET_VAR 'tmp0_subject: Any?' type=kotlin.Any? origin=null
then: CONST String type=kotlin.String value='nothingness?'
else: CONST String type=kotlin.String value='something'
@@ -43,7 +45,9 @@ FILE /when.kt
GET_VAR 'value-parameter x: Any?' type=kotlin.Any? origin=null
then: CONST String type=kotlin.String value='String'
if: CALL 'contains(Any) on Iterable<Any>: Boolean' type=kotlin.Boolean origin=IN
<T>: Any
$receiver: CALL 'setOf(): Set<Nothing>' type=kotlin.collections.Set<kotlin.Nothing> origin=null
<T>: Nothing
element: GET_VAR 'value-parameter x: Any?' type=kotlin.Any? origin=null
then: CONST String type=kotlin.String value='nothingness?'
else: CONST String type=kotlin.String value='something'