[Test] Add diagnostic tests for smartcast in K2
List of issues: KT-28806, KT-7186, KT-22997, KT-1982, KT-22996, KT-54443, KT-37308, KT-37115, KT-4113, KT-25747, KT-24779
This commit is contained in:
committed by
Space Team
parent
48072c822b
commit
c6b32200df
@@ -0,0 +1,56 @@
|
||||
// ISSUE: KT-4113
|
||||
// DIAGNOSTICS: -DEBUG_INFO_SMARTCAST
|
||||
class Test1(val lambda: (() -> String)?) {
|
||||
fun foo() {
|
||||
if (lambda != null) {
|
||||
lambda.invoke()
|
||||
lambda()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun test2(lambda: (() -> String)?) {
|
||||
if (lambda != null) {
|
||||
lambda.invoke()
|
||||
lambda()
|
||||
}
|
||||
}
|
||||
|
||||
class A
|
||||
operator fun A.invoke(): Unit = TODO()
|
||||
|
||||
class Test3 {
|
||||
val nullableCallableClass: A? = null
|
||||
fun foo() {
|
||||
if (nullableCallableClass != null) {
|
||||
nullableCallableClass()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun test4(nullableCallableClass: A?){
|
||||
if (nullableCallableClass != null) {
|
||||
nullableCallableClass()
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
operator fun invoke(s: String): (() -> String)? = TODO()
|
||||
operator fun invoke(): (() -> String) = TODO()
|
||||
}
|
||||
|
||||
class Test4 {
|
||||
fun foo(a: B) {
|
||||
if (a("") != null) {
|
||||
a()()
|
||||
<!UNSAFE_IMPLICIT_INVOKE_CALL!>a("")<!>()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun test5(a: B) {
|
||||
if (a("") != null) {
|
||||
a()()
|
||||
<!UNSAFE_IMPLICIT_INVOKE_CALL!>a("")<!>()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user