Files
kotlin-fork/compiler/testData/diagnostics/tests/controlStructures/kt10717.kt
T
2016-06-10 21:28:05 +03:00

48 lines
1.2 KiB
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_PARAMETER -RETURN_NOT_ALLOWED
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>test1<!>() = run {
return <!TYPE_MISMATCH(String; Nothing)!>"OK"<!>
}
fun <!IMPLICIT_NOTHING_RETURN_TYPE!>test2<!>() = run {
fun local(): String {
return ""
}
return <!TYPE_MISMATCH(String; Nothing)!>""<!>
}
inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> = null!!
fun test3(a: List<String>, b: List<Int>) = a.map {
if (it.length == 3) return <!TYPE_MISMATCH(Nothing?; List<Int>)!>null<!>
if (it.length == 4) return <!TYPE_MISMATCH(String; List<Int>)!>""<!>
if (it.length == 4) return <!TYPE_MISMATCH(Int; List<Int>)!>5<!>
if (it.length == 4) return b
1
}
fun test4() = run {
fun test5() {
return
<!RETURN_TYPE_MISMATCH!>return@test4<!>
return <!RETURN_TYPE_MISMATCH!>return@test4<!>
return <!TYPE_MISMATCH!>fun() { return; return@test4 <!TYPE_MISMATCH!>""<!> }<!>
}
<!RETURN_TYPE_MISMATCH!>return<!>
3
}
val foo: Int
get() = run {
if (true) return <!TYPE_MISMATCH!>""<!>
<!RETURN_TYPE_MISMATCH!>return<!>
}
fun test(): Int = run {
return <!TYPE_MISMATCH!>""<!>
}