[FIR Native] Don't add Cloneable supertype when it's not present

^KT-58549 Fixed
diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt
index 3770899..41bb4f5 100644
--- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt
+++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/stubBased/deserialization/StubBasedClassDeserialization.kt
@@ -211,7 +211,7 @@
             )
         }
 
-        addCloneForArrayIfNeeded(classId, context.dispatchReceiver)
+        addCloneForArrayIfNeeded(classId, context.dispatchReceiver, session)
         session.deserializedClassConfigurator?.run {
             configure(classId)
         }
diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt
index f55f03f..797afd2 100644
--- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt
+++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt
@@ -13,12 +13,13 @@
 import org.jetbrains.kotlin.fir.*
 import org.jetbrains.kotlin.fir.declarations.*
 import org.jetbrains.kotlin.fir.declarations.builder.*
-import org.jetbrains.kotlin.fir.declarations.comparators.FirMemberDeclarationComparator
 import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
 import org.jetbrains.kotlin.fir.declarations.utils.addDeclarations
 import org.jetbrains.kotlin.fir.declarations.utils.isCompanion
 import org.jetbrains.kotlin.fir.declarations.utils.moduleName
 import org.jetbrains.kotlin.fir.declarations.utils.sourceElement
+import org.jetbrains.kotlin.fir.resolve.providers.getRegularClassSymbolByClassId
+import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
 import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
 import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
 import org.jetbrains.kotlin.fir.symbols.impl.FirEnumEntrySymbol
@@ -199,7 +200,7 @@
             generateEntriesGetter(moduleData, classId.packageFqName, classId.relativeClassName)
         }
 
-        addCloneForArrayIfNeeded(classId, context.dispatchReceiver)
+        addCloneForArrayIfNeeded(classId, context.dispatchReceiver, session)
         session.deserializedClassConfigurator?.run {
             configure(classId)
         }
@@ -270,9 +271,10 @@
     }
 }
 
-fun FirRegularClassBuilder.addCloneForArrayIfNeeded(classId: ClassId, dispatchReceiver: ConeClassLikeType?) {
+fun FirRegularClassBuilder.addCloneForArrayIfNeeded(classId: ClassId, dispatchReceiver: ConeClassLikeType?, session: FirSession) {
     if (classId.packageFqName != StandardClassIds.BASE_KOTLIN_PACKAGE) return
     if (classId.shortClassName !in ARRAY_CLASSES) return
+    if (session.symbolProvider.getRegularClassSymbolByClassId(StandardClassIds.Cloneable) == null) return
     superTypeRefs += buildResolvedTypeRef {
         type = ConeClassLikeTypeImpl(
             StandardClassIds.Cloneable.toLookupTag(),
diff --git a/compiler/testData/codegen/box/arrays/arrayInstanceOf.kt b/compiler/testData/codegen/box/arrays/arrayInstanceOf.kt
index 4c167fd..b46bcc4 100644
--- a/compiler/testData/codegen/box/arrays/arrayInstanceOf.kt
+++ b/compiler/testData/codegen/box/arrays/arrayInstanceOf.kt
@@ -1,6 +1,4 @@
-// IGNORE_BACKEND_K2: JS_IR
 // KT-58549
-// IGNORE_BACKEND_K2: NATIVE
 
 //test [], get and iterator calls
 fun test(createIntNotLong: Boolean): String {
diff --git a/compiler/testData/codegen/box/arrays/kt7288.kt b/compiler/testData/codegen/box/arrays/kt7288.kt
index 7a97ad4..02010f1 100644
--- a/compiler/testData/codegen/box/arrays/kt7288.kt
+++ b/compiler/testData/codegen/box/arrays/kt7288.kt
@@ -1,6 +1,4 @@
-// IGNORE_BACKEND_K2: JS_IR
 // KT-58549
-// IGNORE_BACKEND_K2: NATIVE
 
 fun test(b: Boolean): String {
     val a = if (b) IntArray(5) else LongArray(5)