From b060acf01d29836c1aad942cecc4ff38de6ac7bf Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Tue, 14 May 2019 18:55:39 +0300 Subject: [PATCH] KotlinMangler: added IrType.isInlined Added possibility to specify when IrType corresponds to an inline class --- .../kotlin/backend/common/serialization/KotlinMangler.kt | 4 ++-- .../kotlin/ir/backend/js/lower/serialization/ir/JsMangler.kt | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt index 03ebe94d494..891380ae875 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt @@ -21,7 +21,7 @@ interface KotlinMangler { val IrDeclaration.hashedMangle: Long fun IrDeclaration.isExported(): Boolean val IrFunction.functionName: String - + val IrType.isInlined: Boolean } abstract class KotlinManglerImpl: KotlinMangler { @@ -155,7 +155,7 @@ abstract class KotlinManglerImpl: KotlinMangler { val signatureSuffix = when { this.typeParameters.isNotEmpty() -> "Generic" - returnType.isInlined() -> "ValueType" + returnType.isInlined -> "ValueType" !returnType.isUnitOrNullableUnit() -> typeToHashString(returnType) else -> "" } diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsMangler.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsMangler.kt index ca7d67c8b62..7e8fdd80fc3 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsMangler.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsMangler.kt @@ -6,9 +6,14 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir import org.jetbrains.kotlin.backend.common.serialization.KotlinManglerImpl +import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.isInlined object JsMangler: KotlinManglerImpl() { // TODO: think about this override val String.hashMangle: Long get() = this.hashCode().toLong() + + override val IrType.isInlined: Boolean + get() = this.isInlined() }