[FIR-TEST] Add new testdata generated after changes in previous commit
This commit is contained in:
+103
@@ -0,0 +1,103 @@
|
||||
// !LANGUAGE: -ProperForInArrayLoopRangeVariableAssignmentSemantic
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE
|
||||
// SKIP_TXT
|
||||
|
||||
fun testArrayCapturedInLocalFun() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
|
||||
fun updateXs() {
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
updateXs()
|
||||
}
|
||||
}
|
||||
|
||||
fun testArrayCapturedInLabmda() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
|
||||
val updateXs = { xs = arrayOf("d", "e", "f") }
|
||||
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
updateXs()
|
||||
}
|
||||
}
|
||||
|
||||
fun testArrayCapturedInInlineLambda() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
run {
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun testArrayCapturedInLocalObject() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
|
||||
val updateXs = object : () -> Unit {
|
||||
override fun invoke() {
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
updateXs()
|
||||
}
|
||||
}
|
||||
|
||||
fun testArrayCapturedInLocalClass() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
|
||||
class LocalClass {
|
||||
fun updateXs() {
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
|
||||
val updater = LocalClass()
|
||||
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
updater.updateXs()
|
||||
}
|
||||
}
|
||||
|
||||
fun testCapturedInLambdaAfterLoop() {
|
||||
// NB false positive
|
||||
var xs = intArrayOf(1, 2, 3)
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = intArrayOf(4, 5, 6)
|
||||
}
|
||||
val lambda = { xs = intArrayOf() }
|
||||
lambda()
|
||||
}
|
||||
|
||||
fun testCapturedInLambdaInLoopAfterAssignment() {
|
||||
// NB false positive
|
||||
var xs = intArrayOf(1, 2, 3)
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = intArrayOf(4, 5, 6)
|
||||
val lambda = { xs = intArrayOf() }
|
||||
lambda()
|
||||
}
|
||||
}
|
||||
|
||||
fun testCapturedInNonChangingClosure() {
|
||||
// NB false positive
|
||||
var xs = intArrayOf(1, 2, 3)
|
||||
val lambda = { println(xs) }
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = intArrayOf(4, 5, 6)
|
||||
lambda()
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// !LANGUAGE: -ProperForInArrayLoopRangeVariableAssignmentSemantic
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE
|
||||
// SKIP_TXT
|
||||
|
||||
var xs: IntArray = intArrayOf(1, 2, 3)
|
||||
get() = field
|
||||
set(ys) {
|
||||
var sum = 0
|
||||
for (x in field) {
|
||||
sum = sum * 10 + x
|
||||
field = intArrayOf(4, 5, 6)
|
||||
}
|
||||
if (sum != 123) throw AssertionError("sum=$sum")
|
||||
field = ys
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// !LANGUAGE: -ProperForInArrayLoopRangeVariableAssignmentSemantic
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE
|
||||
// SKIP_TXT
|
||||
|
||||
class Delegate<T>(var v: T) {
|
||||
operator fun getValue(thisRef: Any?, kProp: Any?) = v
|
||||
operator fun setValue(thisRef: Any?, kProp: Any?, value: T) { v = value }
|
||||
}
|
||||
|
||||
fun testLocalDelegatedProperty() {
|
||||
var xs by Delegate(arrayOf("a", "b", "c"))
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
// !LANGUAGE: +ProperForInArrayLoopRangeVariableAssignmentSemantic
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE
|
||||
// SKIP_TXT
|
||||
|
||||
fun testObjectArray() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
|
||||
fun testPrimitiveArray() {
|
||||
var xs = intArrayOf(1, 2, 3)
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = intArrayOf(4, 5, 6)
|
||||
}
|
||||
}
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
// !LANGUAGE: -ProperForInArrayLoopRangeVariableAssignmentSemantic
|
||||
// !DIAGNOSTICS: -UNUSED_VALUE
|
||||
// SKIP_TXT
|
||||
|
||||
fun testObjectArray() {
|
||||
var xs = arrayOf("a", "b", "c")
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
|
||||
fun testPrimitiveArray() {
|
||||
var xs = intArrayOf(1, 2, 3)
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
xs = intArrayOf(4, 5, 6)
|
||||
}
|
||||
}
|
||||
|
||||
var global = arrayOf("a", "b", "c")
|
||||
|
||||
fun testGlobalArray() {
|
||||
for (x in global) {
|
||||
println(x)
|
||||
global = arrayOf("d", "e", "f")
|
||||
}
|
||||
}
|
||||
|
||||
fun testAssignmentNotInLoop() {
|
||||
var xs = intArrayOf(1, 2, 3)
|
||||
println(xs)
|
||||
xs = intArrayOf(7, 8, 9)
|
||||
for (x in xs) {
|
||||
println(x)
|
||||
}
|
||||
xs = intArrayOf(4, 5, 6)
|
||||
println(xs)
|
||||
}
|
||||
Reference in New Issue
Block a user