[Commonizer] Don't commonize members of `Any` into `expect` classes
K2 doesn't write them to metadata (but does for non-`expect`s, though!).
See: `ClassifierCommonizationFromSourcesTest.testClassKindAndModifiers`.
diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt
index ea9568d..5d8cea2 100644
--- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt
+++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt
@@ -12,7 +12,6 @@
interface CirClass : CirClassifier, CirContainingClass, AnyClass {
var companion: CirName? // null means no companion object
val isCompanion: Boolean
- val isValue: Boolean
val isInner: Boolean
val hasEnumEntries: Boolean
val supertypes: List<CirType>
diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirDeclaration.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirDeclaration.kt
index ac9d9c5..075058e 100644
--- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirDeclaration.kt
+++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirDeclaration.kt
@@ -55,8 +55,11 @@
interface CirContainingClass : CirHasModality {
val kind: ClassKind
val isData: Boolean
+ val isValue: Boolean
}
+val CirContainingClass.isDataOrValue: Boolean get() = isData || isValue
+
interface CirHasTypeParameters {
val typeParameters: List<CirTypeParameter>
}
diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt
index 77d3fc7..a6daf8b 100644
--- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt
+++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt
@@ -43,7 +43,7 @@
}
// synthesized members of data classes should not be commonized
- if (values.any { value -> value.kind == SYNTHESIZED && value.containingClass?.isData == true }) {
+ if (values.any { value -> value.kind == SYNTHESIZED && value.containingClass?.isDataOrValue == true }) {
return null
}
diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassConstructorCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassConstructorCommonizer.kt
index a51f3d9..45d7acf 100644
--- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassConstructorCommonizer.kt
+++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassConstructorCommonizer.kt
@@ -53,6 +53,7 @@
override val modality get() = Modality.FINAL
override val kind get() = ClassKind.CLASS
override val isData get() = false
+ override val isValue: Boolean get() = false
}
}
}
diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/LoweringVisibilityCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/LoweringVisibilityCommonizerTest.kt
index ae0045a..ef60970 100644
--- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/LoweringVisibilityCommonizerTest.kt
+++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/LoweringVisibilityCommonizerTest.kt
@@ -59,6 +59,7 @@
override val modality get() = Modality.OPEN
override val kind get() = ClassKind.CLASS
override val isData get() = false
+ override val isValue get() = false
} else null
override val extensionReceiver get() = unsupported()
override val returnType get() = unsupported()