mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
103 lines
1.7 KiB
Kotlin
Vendored
103 lines
1.7 KiB
Kotlin
Vendored
// KT-13612 related tests (reassignment in try-catch-finally)
|
|
|
|
fun f1() {
|
|
val n: Int
|
|
try {
|
|
<!UNUSED_VALUE!>n =<!> 1
|
|
throw Exception()
|
|
}
|
|
catch (e: Exception) {
|
|
// KT-13612: reassignment
|
|
<!VAL_REASSIGNMENT!>n<!> = 2
|
|
}
|
|
n.hashCode()
|
|
}
|
|
|
|
fun f2() {
|
|
val <!ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE!>n<!>: Int
|
|
try {
|
|
<!UNUSED_VALUE!>n =<!> 1
|
|
throw Exception()
|
|
}
|
|
finally {
|
|
<!UNUSED_VALUE!><!VAL_REASSIGNMENT!>n<!> =<!> 2
|
|
}
|
|
<!UNREACHABLE_CODE!>n.hashCode()<!>
|
|
}
|
|
|
|
fun g1(flag: Boolean) {
|
|
val n: Int
|
|
try {
|
|
if (flag) throw Exception()
|
|
n = 1
|
|
}
|
|
catch (e: Exception) {
|
|
// KT-13612: ? reassignment or definite assignment ?
|
|
<!VAL_REASSIGNMENT!>n<!> = 2
|
|
}
|
|
n.hashCode()
|
|
}
|
|
|
|
fun g2(flag: Boolean) {
|
|
val n: Int
|
|
try {
|
|
if (flag) throw Exception()
|
|
<!UNUSED_VALUE!>n =<!> 1
|
|
}
|
|
finally {
|
|
<!VAL_REASSIGNMENT!>n<!> = 2
|
|
}
|
|
n.hashCode()
|
|
}
|
|
|
|
fun h1(flag: Boolean) {
|
|
val n = try {
|
|
if (flag) throw Exception()
|
|
1
|
|
}
|
|
catch (e: Exception) {
|
|
2
|
|
}
|
|
n.hashCode()
|
|
}
|
|
|
|
fun h2(flag: Boolean) {
|
|
val n = try {
|
|
if (flag) throw Exception()
|
|
1
|
|
}
|
|
finally {
|
|
<!UNUSED_EXPRESSION!>2<!>
|
|
}
|
|
n.hashCode()
|
|
}
|
|
|
|
fun j(flag: Boolean) {
|
|
if (flag) throw Exception()
|
|
}
|
|
|
|
fun k1(flag: Boolean) {
|
|
val n: Int
|
|
try {
|
|
n = 1
|
|
j(flag)
|
|
}
|
|
catch (e: Exception) {
|
|
// KT-13612: reassignment
|
|
<!VAL_REASSIGNMENT!>n<!> = 2
|
|
}
|
|
n.hashCode()
|
|
}
|
|
|
|
fun k2(flag: Boolean) {
|
|
val n: Int
|
|
try {
|
|
<!UNUSED_VALUE!>n =<!> 1
|
|
j(flag)
|
|
}
|
|
finally {
|
|
<!VAL_REASSIGNMENT!>n<!> = 2
|
|
}
|
|
n.hashCode()
|
|
}
|