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) {
|
task enum_isFrozen(type: KonanLocalTest) {
|
||||||
goldValue = isExperimentalMM ? "false\n" : "true\n"
|
|
||||||
source = "codegen/enum/isFrozen.kt"
|
source = "codegen/enum/isFrozen.kt"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1277,6 +1276,10 @@ standaloneTest("objectDeclaration_globalConstants") {
|
|||||||
source = "codegen/objectDeclaration/globalConstants.kt"
|
source = "codegen/objectDeclaration/globalConstants.kt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task object_isFrozen(type: KonanLocalTest) {
|
||||||
|
source = "codegen/objectDeclaration/isFrozen.kt"
|
||||||
|
}
|
||||||
|
|
||||||
task localClass_objectExpressionInProperty(type: KonanLocalTest) {
|
task localClass_objectExpressionInProperty(type: KonanLocalTest) {
|
||||||
goldValue = "OK\n"
|
goldValue = "OK\n"
|
||||||
source = "codegen/localClass/objectExpressionInProperty.kt"
|
source = "codegen/localClass/objectExpressionInProperty.kt"
|
||||||
|
|||||||
@@ -8,11 +8,21 @@ package codegen.enum.isFrozen
|
|||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
import kotlin.native.concurrent.*
|
import kotlin.native.concurrent.*
|
||||||
|
|
||||||
enum class Zzz(val zzz: String) {
|
enum class Zzz(val zzz: String, var value: Int = 0) {
|
||||||
Z1("z1"),
|
Z1("z1"),
|
||||||
Z2("z2")
|
Z2("z2")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun runTest() {
|
@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