Data class members generation.
Builder-style API for desugaring expressions.
This commit is contained in:
committed by
Dmitry Petrov
parent
dc169e98d5
commit
1022725fd1
+129
@@ -0,0 +1,129 @@
|
||||
FILE /dataClasses.kt
|
||||
CLASS CLASS Test1
|
||||
FUN public constructor Test1(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String, /*2*/ z: kotlin.Any)
|
||||
BLOCK_BODY
|
||||
SET_BACKING_FIELD x type=kotlin.Unit operator=null
|
||||
GET_VAR x type=kotlin.Int operator=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
SET_BACKING_FIELD y type=kotlin.Unit operator=null
|
||||
GET_VAR y type=kotlin.String operator=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
SET_BACKING_FIELD z type=kotlin.Unit operator=null
|
||||
GET_VAR z type=kotlin.Any operator=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
PROPERTY public final val x: kotlin.Int getter=null setter=null
|
||||
EXPRESSION_BODY
|
||||
GET_VAR x type=kotlin.Int operator=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
PROPERTY public final val y: kotlin.String getter=null setter=null
|
||||
EXPRESSION_BODY
|
||||
GET_VAR y type=kotlin.String operator=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
PROPERTY public final val z: kotlin.Any getter=null setter=null
|
||||
EXPRESSION_BODY
|
||||
GET_VAR z type=kotlin.Any operator=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN public final operator /*synthesized*/ fun component1(): kotlin.Int
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from=component1
|
||||
CALL .<get-x> type=kotlin.Int operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
FUN public final operator /*synthesized*/ fun component2(): kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from=component2
|
||||
CALL .<get-y> type=kotlin.String operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
FUN public final operator /*synthesized*/ fun component3(): kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from=component3
|
||||
CALL .<get-z> type=kotlin.Any operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
FUN public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.String = ..., /*2*/ z: kotlin.Any = ...): Test1
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from=copy
|
||||
CALL .<init> type=Test1 operator=null
|
||||
x: GET_VAR x type=kotlin.Int operator=null
|
||||
y: GET_VAR y type=kotlin.String operator=null
|
||||
z: GET_VAR z type=kotlin.Any operator=null
|
||||
FUN public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from=toString
|
||||
STRING_CONCATENATION type=kotlin.String
|
||||
CONST String type=kotlin.String value='Test1('
|
||||
CONST String type=kotlin.String value='x='
|
||||
CALL .<get-x> type=kotlin.Int operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
CONST String type=kotlin.String value=', '
|
||||
CONST String type=kotlin.String value='y='
|
||||
CALL .<get-y> type=kotlin.String operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
CONST String type=kotlin.String value=', '
|
||||
CONST String type=kotlin.String value='z='
|
||||
CALL .<get-z> type=kotlin.Any operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
CONST String type=kotlin.String value=')'
|
||||
FUN public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
BLOCK_BODY
|
||||
VAR val tmp0_result: kotlin.Int
|
||||
CONST Int type=kotlin.Int value='0'
|
||||
SET_VAR tmp0_result type=kotlin.Unit operator=EQ
|
||||
CALL .hashCode type=kotlin.Int operator=null
|
||||
$this: CALL .<get-x> type=kotlin.Int operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
SET_VAR tmp0_result type=kotlin.Unit operator=EQ
|
||||
CALL .plus type=kotlin.Int operator=null
|
||||
$this: CALL .times type=kotlin.Int operator=null
|
||||
$this: GET_VAR tmp0_result type=kotlin.Int operator=null
|
||||
other: CONST Int type=kotlin.Int value='31'
|
||||
other: CALL .hashCode type=kotlin.Int operator=null
|
||||
$this: CALL .<get-y> type=kotlin.String operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
SET_VAR tmp0_result type=kotlin.Unit operator=EQ
|
||||
CALL .plus type=kotlin.Int operator=null
|
||||
$this: CALL .times type=kotlin.Int operator=null
|
||||
$this: GET_VAR tmp0_result type=kotlin.Int operator=null
|
||||
other: CONST Int type=kotlin.Int value='31'
|
||||
other: CALL .hashCode type=kotlin.Int operator=null
|
||||
$this: CALL .<get-z> type=kotlin.Any operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
RETURN type=kotlin.Nothing from=hashCode
|
||||
GET_VAR tmp0_result type=kotlin.Int operator=null
|
||||
FUN public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
BLOCK_BODY
|
||||
WHEN type=kotlin.Unit operator=null
|
||||
if: CALL .EQEQEQ type=kotlin.Boolean operator=EQEQEQ
|
||||
arg0: THIS public final data class Test1 type=Test1
|
||||
arg1: GET_VAR other type=kotlin.Any? operator=null
|
||||
then: RETURN type=kotlin.Nothing from=equals
|
||||
CONST Boolean type=kotlin.Boolean value='true'
|
||||
WHEN type=kotlin.Unit operator=null
|
||||
if: TYPE_OP operator=NOT_INSTANCEOF typeOperand=Test1
|
||||
GET_VAR other type=kotlin.Any? operator=null
|
||||
then: RETURN type=kotlin.Nothing from=equals
|
||||
CONST Boolean type=kotlin.Boolean value='false'
|
||||
VAR val tmp0_other_with_cast: Test1
|
||||
TYPE_OP operator=CAST typeOperand=Test1
|
||||
GET_VAR other type=kotlin.Any? operator=null
|
||||
WHEN type=kotlin.Unit operator=null
|
||||
if: CALL .NOT type=kotlin.Boolean operator=EXCLEQ
|
||||
arg0: CALL .EQEQ type=kotlin.Boolean operator=EXCLEQ
|
||||
arg0: CALL .<get-x> type=kotlin.Int operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
arg1: CALL .<get-x> type=kotlin.Int operator=GET_PROPERTY
|
||||
$this: GET_VAR tmp0_other_with_cast type=Test1 operator=null
|
||||
then: RETURN type=kotlin.Nothing from=equals
|
||||
CONST Boolean type=kotlin.Boolean value='false'
|
||||
WHEN type=kotlin.Unit operator=null
|
||||
if: CALL .NOT type=kotlin.Boolean operator=EXCLEQ
|
||||
arg0: CALL .EQEQ type=kotlin.Boolean operator=EXCLEQ
|
||||
arg0: CALL .<get-y> type=kotlin.String operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
arg1: CALL .<get-y> type=kotlin.String operator=GET_PROPERTY
|
||||
$this: GET_VAR tmp0_other_with_cast type=Test1 operator=null
|
||||
then: RETURN type=kotlin.Nothing from=equals
|
||||
CONST Boolean type=kotlin.Boolean value='false'
|
||||
WHEN type=kotlin.Unit operator=null
|
||||
if: CALL .NOT type=kotlin.Boolean operator=EXCLEQ
|
||||
arg0: CALL .EQEQ type=kotlin.Boolean operator=EXCLEQ
|
||||
arg0: CALL .<get-z> type=kotlin.Any operator=GET_PROPERTY
|
||||
$this: THIS public final data class Test1 type=Test1
|
||||
arg1: CALL .<get-z> type=kotlin.Any operator=GET_PROPERTY
|
||||
$this: GET_VAR tmp0_other_with_cast type=Test1 operator=null
|
||||
then: RETURN type=kotlin.Nothing from=equals
|
||||
CONST Boolean type=kotlin.Boolean value='false'
|
||||
RETURN type=kotlin.Nothing from=equals
|
||||
CONST Boolean type=kotlin.Boolean value='true'
|
||||
Reference in New Issue
Block a user