[FIR-TEST] Add new testdata generated after changes in previous commit

This commit is contained in:
Dmitriy Novozhilov
2019-12-11 16:16:22 +03:00
parent e9c02a1cca
commit 2536fa0cd5
4578 changed files with 104067 additions and 1 deletions
@@ -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()
}
}
@@ -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
}
@@ -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")
}
}
@@ -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)
}
}
@@ -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)
}