Add isFrozen test on object
This commit is contained in:
committed by
Space
parent
48a4d7d418
commit
b1e0e43ba4
@@ -1182,7 +1182,6 @@ task enum_nested(type: KonanLocalTest) {
|
||||
}
|
||||
|
||||
task enum_isFrozen(type: KonanLocalTest) {
|
||||
goldValue = isExperimentalMM ? "false\n" : "true\n"
|
||||
source = "codegen/enum/isFrozen.kt"
|
||||
}
|
||||
|
||||
@@ -1277,6 +1276,10 @@ standaloneTest("objectDeclaration_globalConstants") {
|
||||
source = "codegen/objectDeclaration/globalConstants.kt"
|
||||
}
|
||||
|
||||
task object_isFrozen(type: KonanLocalTest) {
|
||||
source = "codegen/objectDeclaration/isFrozen.kt"
|
||||
}
|
||||
|
||||
task localClass_objectExpressionInProperty(type: KonanLocalTest) {
|
||||
goldValue = "OK\n"
|
||||
source = "codegen/localClass/objectExpressionInProperty.kt"
|
||||
|
||||
@@ -8,11 +8,21 @@ package codegen.enum.isFrozen
|
||||
import kotlin.test.*
|
||||
import kotlin.native.concurrent.*
|
||||
|
||||
enum class Zzz(val zzz: String) {
|
||||
enum class Zzz(val zzz: String, var value: Int = 0) {
|
||||
Z1("z1"),
|
||||
Z2("z2")
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
println(Zzz.Z1.isFrozen)
|
||||
}
|
||||
if (Platform.memoryModel == MemoryModel.STRICT) {
|
||||
assertTrue(Zzz.Z1.isFrozen)
|
||||
assertFailsWith<InvalidMutabilityException> {
|
||||
Zzz.Z1.value = 42
|
||||
}
|
||||
assertEquals(0, Zzz.Z1.value)
|
||||
} else {
|
||||
assertFalse(Zzz.Z1.isFrozen)
|
||||
Zzz.Z1.value = 42
|
||||
assertEquals(42, Zzz.Z1.value)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package codegen.objectDeclaration.isFrozen
|
||||
|
||||
import kotlin.test.*
|
||||
import kotlin.native.concurrent.*
|
||||
|
||||
object X {
|
||||
var value: Int = 0
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
if (Platform.memoryModel == MemoryModel.STRICT) {
|
||||
assertTrue(X.isFrozen)
|
||||
assertFailsWith<InvalidMutabilityException> {
|
||||
X.value = 42
|
||||
}
|
||||
assertEquals(0, X.value)
|
||||
} else {
|
||||
assertFalse(X.isFrozen)
|
||||
X.value = 42
|
||||
assertEquals(42, X.value)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user