[K/N, K/JS, K/WASM] Enable FakeOverrideRebuilder by default

While not beeing final solution, this is closer to what
we want to have in the end. Enabling on non-JVM targets
would help better testing.

Enabling in JVM is now not possible yet, as some of the bugs are
not fixed yet (check KT-61360 for details)

^KT-62476
This commit is contained in:
Pavel Kunyavskiy
2023-12-12 13:42:36 +01:00
committed by Space Team
parent c6e32571d6
commit f45d92eebc
29 changed files with 304 additions and 637 deletions
@@ -1,249 +0,0 @@
FILE fqName:<root> fileName:/inlineCollectionOfInlineClass.kt
CLASS CLASS name:IT modality:FINAL visibility:public [value] superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IT
CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:<root>.IT [primary]
VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:IT modality:FINAL visibility:public [value] superTypes:[kotlin.Any]'
PROPERTY name:x visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
EXPRESSION_BODY
GET_VAR 'x: kotlin.Int declared in <root>.IT.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.IT) returnType:kotlin.Int
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.IT
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-x> (): kotlin.Int declared in <root>.IT'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.IT declared in <root>.IT.<get-x>' type=<root>.IT origin=null
FUN GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.IT) returnType:kotlin.String
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:<root>.IT
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.IT'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="IT("
CONST String type=kotlin.String value="x="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.IT declared in <root>.IT.toString' type=<root>.IT origin=null
CONST String type=kotlin.String value=")"
FUN GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.IT) returnType:kotlin.Int
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:<root>.IT
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in <root>.IT'
CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.IT declared in <root>.IT.hashCode' type=<root>.IT origin=null
FUN GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.IT, other:kotlin.Any?) returnType:kotlin.Boolean [operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:<root>.IT
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
BLOCK_BODY
WHEN type=kotlin.Unit origin=null
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.IT
GET_VAR 'other: kotlin.Any? declared in <root>.IT.equals' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IT'
CONST Boolean type=kotlin.Boolean value=false
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:<root>.IT [val]
TYPE_OP type=<root>.IT origin=CAST typeOperand=<root>.IT
GET_VAR 'other: kotlin.Any? declared in <root>.IT.equals' type=kotlin.Any? origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.IT declared in <root>.IT.equals' type=<root>.IT origin=null
arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR 'val tmp_0: <root>.IT declared in <root>.IT.equals' type=<root>.IT origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IT'
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.IT'
CONST Boolean type=kotlin.Boolean value=true
CLASS CLASS name:InlineMutableSet modality:FINAL visibility:public [value] superTypes:[kotlin.collections.MutableSet<<root>.IT>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.InlineMutableSet
CONSTRUCTOR visibility:public <> (ms:kotlin.collections.MutableSet<<root>.IT>) returnType:<root>.InlineMutableSet [primary]
VALUE_PARAMETER name:ms index:0 type:kotlin.collections.MutableSet<<root>.IT>
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:InlineMutableSet modality:FINAL visibility:public [value] superTypes:[kotlin.collections.MutableSet<<root>.IT>]'
PROPERTY name:ms visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]
EXPRESSION_BODY
GET_VAR 'ms: kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet.<init>' type=kotlin.collections.MutableSet<<root>.IT> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-ms> visibility:private modality:FINAL <> ($this:<root>.InlineMutableSet) returnType:kotlin.collections.MutableSet<<root>.IT>
correspondingProperty: PROPERTY name:ms visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]' type=kotlin.collections.MutableSet<<root>.IT> origin=null
receiver: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.<get-ms>' type=<root>.InlineMutableSet origin=null
PROPERTY name:size visibility:public modality:OPEN [val]
overridden:
public abstract size: kotlin.Int
FUN name:<get-size> visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet) returnType:kotlin.Int
correspondingProperty: PROPERTY name:size visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-size> (): kotlin.Int declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-size> (): kotlin.Int declared in <root>.InlineMutableSet'
CALL 'public abstract fun <get-size> (): kotlin.Int declared in kotlin.collections.MutableSet' type=kotlin.Int origin=GET_PROPERTY
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.<get-size>' type=<root>.InlineMutableSet origin=null
FUN name:contains visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, element:<root>.IT) returnType:kotlin.Boolean [operator]
overridden:
public abstract fun contains (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:element index:0 type:<root>.IT
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun contains (element: <root>.IT): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun contains (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.contains' type=<root>.InlineMutableSet origin=null
element: GET_VAR 'element: <root>.IT declared in <root>.InlineMutableSet.contains' type=<root>.IT origin=null
FUN name:containsAll visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, elements:kotlin.collections.Collection<<root>.IT>) returnType:kotlin.Boolean
overridden:
public abstract fun containsAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<<root>.IT>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun containsAll (elements: kotlin.collections.Collection<<root>.IT>): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun containsAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.containsAll' type=<root>.InlineMutableSet origin=null
elements: GET_VAR 'elements: kotlin.collections.Collection<<root>.IT> declared in <root>.InlineMutableSet.containsAll' type=kotlin.collections.Collection<<root>.IT> origin=null
FUN name:isEmpty visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet) returnType:kotlin.Boolean
overridden:
public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun isEmpty (): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.isEmpty' type=<root>.InlineMutableSet origin=null
FUN name:add visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, element:<root>.IT) returnType:kotlin.Boolean
overridden:
public abstract fun add (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:element index:0 type:<root>.IT
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun add (element: <root>.IT): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun add (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.add' type=<root>.InlineMutableSet origin=null
element: GET_VAR 'element: <root>.IT declared in <root>.InlineMutableSet.add' type=<root>.IT origin=null
FUN name:addAll visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, elements:kotlin.collections.Collection<<root>.IT>) returnType:kotlin.Boolean
overridden:
public abstract fun addAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<<root>.IT>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun addAll (elements: kotlin.collections.Collection<<root>.IT>): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun addAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.addAll' type=<root>.InlineMutableSet origin=null
elements: GET_VAR 'elements: kotlin.collections.Collection<<root>.IT> declared in <root>.InlineMutableSet.addAll' type=kotlin.collections.Collection<<root>.IT> origin=null
FUN name:clear visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet) returnType:kotlin.Unit
overridden:
public abstract fun clear (): kotlin.Unit declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
CALL 'public abstract fun clear (): kotlin.Unit declared in kotlin.collections.MutableSet' type=kotlin.Unit origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.clear' type=<root>.InlineMutableSet origin=null
FUN name:iterator visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet) returnType:kotlin.collections.MutableIterator<<root>.IT> [operator]
overridden:
public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableSet> declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun iterator (): kotlin.collections.MutableIterator<<root>.IT> declared in <root>.InlineMutableSet'
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableSet> declared in kotlin.collections.MutableSet' type=kotlin.collections.MutableIterator<<root>.IT> origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.iterator' type=<root>.InlineMutableSet origin=null
FUN name:remove visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, element:<root>.IT) returnType:kotlin.Boolean
overridden:
public abstract fun remove (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:element index:0 type:<root>.IT
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun remove (element: <root>.IT): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun remove (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.remove' type=<root>.InlineMutableSet origin=null
element: GET_VAR 'element: <root>.IT declared in <root>.InlineMutableSet.remove' type=<root>.IT origin=null
FUN name:removeAll visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, elements:kotlin.collections.Collection<<root>.IT>) returnType:kotlin.Boolean
overridden:
public abstract fun removeAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<<root>.IT>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun removeAll (elements: kotlin.collections.Collection<<root>.IT>): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun removeAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.removeAll' type=<root>.InlineMutableSet origin=null
elements: GET_VAR 'elements: kotlin.collections.Collection<<root>.IT> declared in <root>.InlineMutableSet.removeAll' type=kotlin.collections.Collection<<root>.IT> origin=null
FUN name:retainAll visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, elements:kotlin.collections.Collection<<root>.IT>) returnType:kotlin.Boolean
overridden:
public abstract fun retainAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<<root>.IT>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun retainAll (elements: kotlin.collections.Collection<<root>.IT>): kotlin.Boolean declared in <root>.InlineMutableSet'
CALL 'public abstract fun retainAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
$this: CALL 'private final fun <get-ms> (): kotlin.collections.MutableSet<<root>.IT> declared in <root>.InlineMutableSet' type=kotlin.collections.MutableSet<<root>.IT> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.retainAll' type=<root>.InlineMutableSet origin=null
elements: GET_VAR 'elements: kotlin.collections.Collection<<root>.IT> declared in <root>.InlineMutableSet.retainAll' type=kotlin.collections.Collection<<root>.IT> origin=null
FUN GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet) returnType:kotlin.String
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.InlineMutableSet'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="InlineMutableSet("
CONST String type=kotlin.String value="ms="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]' type=kotlin.collections.MutableSet<<root>.IT> origin=null
receiver: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.toString' type=<root>.InlineMutableSet origin=null
CONST String type=kotlin.String value=")"
FUN GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet) returnType:kotlin.Int
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in <root>.InlineMutableSet'
CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.collections.MutableSet' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]' type=kotlin.collections.MutableSet<<root>.IT> origin=null
receiver: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.hashCode' type=<root>.InlineMutableSet origin=null
FUN GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.InlineMutableSet, other:kotlin.Any?) returnType:kotlin.Boolean [operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:<root>.InlineMutableSet
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
BLOCK_BODY
WHEN type=kotlin.Unit origin=null
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.InlineMutableSet
GET_VAR 'other: kotlin.Any? declared in <root>.InlineMutableSet.equals' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InlineMutableSet'
CONST Boolean type=kotlin.Boolean value=false
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:<root>.InlineMutableSet [val]
TYPE_OP type=<root>.InlineMutableSet origin=CAST typeOperand=<root>.InlineMutableSet
GET_VAR 'other: kotlin.Any? declared in <root>.InlineMutableSet.equals' type=kotlin.Any? origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]' type=kotlin.collections.MutableSet<<root>.IT> origin=null
receiver: GET_VAR '<this>: <root>.InlineMutableSet declared in <root>.InlineMutableSet.equals' type=<root>.InlineMutableSet origin=null
arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ms type:kotlin.collections.MutableSet<<root>.IT> visibility:private [final]' type=kotlin.collections.MutableSet<<root>.IT> origin=null
receiver: GET_VAR 'val tmp_1: <root>.InlineMutableSet declared in <root>.InlineMutableSet.equals' type=<root>.InlineMutableSet origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InlineMutableSet'
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.InlineMutableSet'
CONST Boolean type=kotlin.Boolean value=true
@@ -1,109 +0,0 @@
value class IT {
constructor(x: Int) /* primary */ {
super/*Any*/()
/* <init>() */
}
val x: Int
field = x
get
override fun toString(): String {
return "IT(" + "x=" + <this>.#x + ")"
}
override fun hashCode(): Int {
return <this>.#x.hashCode()
}
override operator fun equals(other: Any?): Boolean {
when {
other !is IT -> return false
}
val tmp_0: IT = other as IT
when {
EQEQ(arg0 = <this>.#x, arg1 = tmp_0.#x).not() -> return false
}
return true
}
}
value class InlineMutableSet : MutableSet<IT> {
constructor(ms: MutableSet<IT>) /* primary */ {
super/*Any*/()
/* <init>() */
}
private val ms: MutableSet<IT>
field = ms
private get
override val size: Int
override get(): Int {
return <this>.<get-ms>().<get-size>()
}
override operator fun contains(element: IT): Boolean {
return <this>.<get-ms>().contains(element = element)
}
override fun containsAll(elements: Collection<IT>): Boolean {
return <this>.<get-ms>().containsAll(elements = elements)
}
override fun isEmpty(): Boolean {
return <this>.<get-ms>().isEmpty()
}
override fun add(element: IT): Boolean {
return <this>.<get-ms>().add(element = element)
}
override fun addAll(elements: Collection<IT>): Boolean {
return <this>.<get-ms>().addAll(elements = elements)
}
override fun clear() {
<this>.<get-ms>().clear()
}
override operator fun iterator(): MutableIterator<IT> {
return <this>.<get-ms>().iterator()
}
override fun remove(element: IT): Boolean {
return <this>.<get-ms>().remove(element = element)
}
override fun removeAll(elements: Collection<IT>): Boolean {
return <this>.<get-ms>().removeAll(elements = elements)
}
override fun retainAll(elements: Collection<IT>): Boolean {
return <this>.<get-ms>().retainAll(elements = elements)
}
override fun toString(): String {
return "InlineMutableSet(" + "ms=" + <this>.#ms + ")"
}
override fun hashCode(): Int {
return <this>.#ms.hashCode()
}
override operator fun equals(other: Any?): Boolean {
when {
other !is InlineMutableSet -> return false
}
val tmp_1: InlineMutableSet = other as InlineMutableSet
when {
EQEQ(arg0 = <this>.#ms, arg1 = tmp_1.#ms).not() -> return false
}
return true
}
}
@@ -1,3 +1,7 @@
// FIR_IDENTICAL
// KT-64271
// IGNORE_BACKEND_K2: JVM_IR
inline class IT(val x: Int)
inline class InlineMutableSet(private val ms: MutableSet<IT>) : MutableSet<IT> {
@@ -17,16 +17,19 @@ class C2 : C1 {
// Public signature debug description: f(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: C2#f(){}
// Mangled name for the signature: f(){}
// Public signature: /C2.f|5316533450599009716[0]
// Public signature debug description: f(){}
/* fake */ override fun f(): String
// CHECK:
// CHECK JVM_IR:
// Mangled name: C2{}p
// Mangled name for the signature: {}p
// Public signature: /C2.p|6715504260787941082[0]
// Public signature debug description: {}p
// CHECK JS_IR NATIVE:
// Mangled name: C2{}p
// Public signature: /C2.p|6715504260787941082[0]
// Public signature debug description: {}p
/* fake */ override val p: Int
// CHECK JVM_IR:
// Mangled name: C2#<get-p>(){}kotlin.Int
@@ -35,7 +38,6 @@ class C2 : C1 {
// Public signature debug description: <get-p>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: C2#<get-p>(){}
// Mangled name for the signature: <get-p>(){}
// Public signature: /C2.p.<get-p>|-1162552463316289847[0]
// Public signature debug description: <get-p>(){}
/* fake */ override get(): Int