[IR] Rename static replacement of MFVC typed equals to "equals-impl0"

Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com>

#KT-1179
This commit is contained in:
Evgeniy.Zhelenskiy
2022-10-24 18:27:27 +02:00
committed by Space Team
parent 38c80192f9
commit 3653c86f08
42 changed files with 122 additions and 117 deletions
@@ -1311,23 +1311,24 @@ fun IdSignature?.isComposite(): Boolean =
this is IdSignature.CompositeSignature
fun IrFunction.isToString(): Boolean =
name.asString() == "toString" && extensionReceiverParameter == null && contextReceiverParametersCount == 0 && valueParameters.isEmpty()
name == OperatorNameConventions.TO_STRING && extensionReceiverParameter == null && contextReceiverParametersCount == 0 && valueParameters.isEmpty()
fun IrFunction.isHashCode() =
name.asString() == "hashCode" && extensionReceiverParameter == null && contextReceiverParametersCount == 0 && valueParameters.isEmpty()
name == OperatorNameConventions.HASH_CODE && extensionReceiverParameter == null && contextReceiverParametersCount == 0 && valueParameters.isEmpty()
fun IrFunction.isEquals() =
name.asString() == "equals" &&
name == OperatorNameConventions.EQUALS &&
extensionReceiverParameter == null && contextReceiverParametersCount == 0 &&
valueParameters.singleOrNull()?.type?.isNullableAny() == true
fun IrFunction.isTypedEquals(): Boolean {
val parentClass = parent as? IrClass ?: return false
val enclosingClassStartProjection = parentClass.symbol.starProjectedType
return name == OperatorNameConventions.EQUALS
&& (returnType.isBoolean() || returnType.isNothing())
&& valueParameters.size == 1
&& (valueParameters[0].type == enclosingClassStartProjection)
&& contextReceiverParametersCount == 0 && extensionReceiverParameter == null
&& parentClass.isValue
}
val IrFunction.isValueClassTypedEquals: Boolean
get() {
val parentClass = parent as? IrClass ?: return false
val enclosingClassStartProjection = parentClass.symbol.starProjectedType
return name == OperatorNameConventions.EQUALS
&& (returnType.isBoolean() || returnType.isNothing())
&& valueParameters.size == 1
&& (valueParameters[0].type == enclosingClassStartProjection)
&& contextReceiverParametersCount == 0 && extensionReceiverParameter == null
&& (parentClass.isValue)
}