Substitute stub type variables in local variable descriptors
This commit is contained in:
compiler/testData/diagnostics/tests/inference/builderInference/specialCallsWithCallableReferences.kt
Vendored
+9
-9
@@ -38,7 +38,7 @@ fun <R> select(vararg x: R) = x[0]
|
||||
|
||||
fun poll0(): Flow<String> {
|
||||
return flow {
|
||||
val inv = select(<!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!><!>, <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!><!>)
|
||||
val inv = select(::bar, ::foo)
|
||||
inv()
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,7 @@ fun poll01(): Flow<String> {
|
||||
|
||||
fun poll02(): Flow<String> {
|
||||
return flow {
|
||||
val inv = select(<!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!><!>, <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo3<!><!>)
|
||||
val inv = select(::bar3, ::foo3)
|
||||
inv()
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,7 @@ fun poll03(): Flow<String> {
|
||||
|
||||
fun poll04(): Flow<String> {
|
||||
return flow {
|
||||
val inv = select(<!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar5<!><!>, <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo5<!><!>)
|
||||
val inv = select(::bar5, ::foo5)
|
||||
inv
|
||||
}
|
||||
}
|
||||
@@ -143,7 +143,7 @@ fun poll17(flag: Boolean): Flow<String> {
|
||||
|
||||
fun poll2(flag: Boolean): Flow<String> {
|
||||
return flow {
|
||||
val inv = when (flag) { true -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!><!> else -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!><!> }
|
||||
val inv = when (flag) { true -> ::bar else -> ::foo }
|
||||
inv()
|
||||
}
|
||||
}
|
||||
@@ -157,7 +157,7 @@ fun poll21(flag: Boolean): Flow<String> {
|
||||
|
||||
fun poll22(flag: Boolean): Flow<String> {
|
||||
return flow {
|
||||
val inv = when (flag) { true -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!><!> else -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo3<!><!> }
|
||||
val inv = when (flag) { true -> ::bar3 else -> ::foo3 }
|
||||
inv()
|
||||
}
|
||||
}
|
||||
@@ -171,7 +171,7 @@ fun poll23(flag: Boolean): Flow<String> {
|
||||
|
||||
fun poll24(flag: Boolean): Flow<String> {
|
||||
return flow {
|
||||
val inv = when (flag) { true -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar5<!><!> else -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo5<!><!> }
|
||||
val inv = when (flag) { true -> ::bar5 else -> ::foo5 }
|
||||
inv
|
||||
}
|
||||
}
|
||||
@@ -192,7 +192,7 @@ fun poll26(flag: Boolean): Flow<String> {
|
||||
|
||||
fun poll3(flag: Boolean): Flow<String> {
|
||||
return flow {
|
||||
val inv = when (flag) { true -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!><!> false -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!><!> }
|
||||
val inv = when (flag) { true -> ::bar false -> ::foo }
|
||||
inv()
|
||||
}
|
||||
}
|
||||
@@ -206,7 +206,7 @@ fun poll31(flag: Boolean): Flow<String> {
|
||||
|
||||
fun poll32(flag: Boolean): Flow<String> {
|
||||
return flow {
|
||||
val inv = when (flag) { true -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!><!> false -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo3<!><!> }
|
||||
val inv = when (flag) { true -> ::bar3 false -> ::foo3 }
|
||||
inv()
|
||||
}
|
||||
}
|
||||
@@ -220,7 +220,7 @@ fun poll33(flag: Boolean): Flow<String> {
|
||||
|
||||
fun poll34(flag: Boolean): Flow<String> {
|
||||
return flow {
|
||||
val inv = when (flag) { true -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>bar5<!><!> false -> <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo5<!><!> }
|
||||
val inv = when (flag) { true -> ::bar5 false -> ::foo5 }
|
||||
inv
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+213
-38
@@ -24,7 +24,7 @@ fun test() {
|
||||
get()?.test2()
|
||||
get().test2()
|
||||
get()?.hashCode()
|
||||
get()?.<!NONE_APPLICABLE!>equals<!>(1)
|
||||
get()?.equals(1)
|
||||
// there is `String?.equals` extension
|
||||
get().equals("")
|
||||
}
|
||||
@@ -35,10 +35,10 @@ fun test() {
|
||||
get()?.test2()
|
||||
get().test2()
|
||||
get()?.hashCode()
|
||||
get()?.<!NONE_APPLICABLE!>equals<!>(1)
|
||||
get()?.equals(1)
|
||||
val x = get()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
x.equals("")
|
||||
}
|
||||
val ret3 = build {
|
||||
@@ -48,92 +48,267 @@ fun test() {
|
||||
get()?.test2()
|
||||
get().test2()
|
||||
get()?.hashCode()
|
||||
get()?.<!NONE_APPLICABLE!>equals<!>(1)
|
||||
get()?.equals(1)
|
||||
val x = get()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
|
||||
if (get() == null) {}
|
||||
if (get() === null) {}
|
||||
|
||||
if (x != null) {
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
x.equals("")
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x.test()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>test2()
|
||||
x?.test2()
|
||||
x.test2()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret4 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.hashCode()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret401 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret402 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.toString("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret403 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.test()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret404 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.hashCode()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret405 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret406 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.toString("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret407 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.test()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret408 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
x.test()
|
||||
|
||||
""
|
||||
}
|
||||
val ret41 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
get()?.test()
|
||||
get()?.test2()
|
||||
get().test2()
|
||||
get()?.hashCode()
|
||||
get()?.<!NONE_APPLICABLE!>equals<!>(1)
|
||||
get()?.equals(1)
|
||||
val x = get()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
|
||||
if (get() == null) {}
|
||||
if (get() === null) {}
|
||||
|
||||
if (x == null) {
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x.equals("") // TODO: is it correct?
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x.test()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>test2()
|
||||
x?.hashCode()
|
||||
}
|
||||
|
||||
if (x == null) {
|
||||
x?.equals(1)
|
||||
}
|
||||
|
||||
if (x == null) {
|
||||
x?.test2()
|
||||
}
|
||||
|
||||
if (x == null) {
|
||||
x.test2()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x.equals("")
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x.test()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>test2()
|
||||
x?.hashCode()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
x?.equals(1)
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
x?.test2()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
x.test2()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret5 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret501 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.hashCode()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret502 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.toString()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret503 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.test()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret504 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret505 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.hashCode()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret506 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.toString()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret507 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.test()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret508 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
x.test()
|
||||
""
|
||||
}
|
||||
val ret51 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
get()?.test()
|
||||
get()?.test2()
|
||||
get().test2()
|
||||
get()?.hashCode()
|
||||
get()?.<!NONE_APPLICABLE!>equals<!>(1)
|
||||
get()?.equals(1)
|
||||
val x = get()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
|
||||
if (get() == null) {}
|
||||
if (get() === null) {}
|
||||
|
||||
if (x == null) {
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!><!NONE_APPLICABLE!>equals<!>(1)
|
||||
x.equals("")
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x.test()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>test2()
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
x?.test2()
|
||||
x.test2()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
}
|
||||
}
|
||||
+193
-18
@@ -26,7 +26,7 @@ fun test() {
|
||||
get()?.hashCode()
|
||||
get()?.equals(1)
|
||||
// there is `String?.equals` extension
|
||||
<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>get()<!>.equals("")
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>get()<!>.equals("")
|
||||
}
|
||||
val ret2 = build {
|
||||
emit(1)
|
||||
@@ -39,7 +39,7 @@ fun test() {
|
||||
val x = get()
|
||||
x?.hashCode()
|
||||
x?.equals(1)
|
||||
x<!UNSAFE_CALL!>.<!>equals("")
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.equals("")
|
||||
}
|
||||
val ret3 = build {
|
||||
emit(1)
|
||||
@@ -59,10 +59,10 @@ fun test() {
|
||||
if (x != null) {
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>hashCode()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>equals(1)
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.equals("")
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.hashCode()
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.toString()
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.test()
|
||||
x.equals("")
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x.test()
|
||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>test2()
|
||||
x.test2()
|
||||
}
|
||||
@@ -70,6 +70,94 @@ fun test() {
|
||||
""
|
||||
}
|
||||
val ret4 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.hashCode()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret401 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret402 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
x.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, NONE_APPLICABLE!>toString<!>("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret403 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.test()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret404 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.hashCode()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret405 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret406 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
x.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, NONE_APPLICABLE!>toString<!>("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret407 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.test()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret408 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.test()
|
||||
|
||||
""
|
||||
}
|
||||
val ret41 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
get()?.test()
|
||||
@@ -86,29 +174,120 @@ fun test() {
|
||||
|
||||
if (x == null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.hashCode()
|
||||
}
|
||||
|
||||
if (x == null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.equals(1)
|
||||
x.equals("") // TODO: is it correct?
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x<!UNSAFE_CALL!>.<!>test()
|
||||
}
|
||||
|
||||
if (x == null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.test2()
|
||||
}
|
||||
|
||||
if (x == null) {
|
||||
x.test2()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.hashCode()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.equals(1)
|
||||
x.equals("")
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x<!UNSAFE_CALL!>.<!>test()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.test2()
|
||||
}
|
||||
|
||||
if (x === null) {
|
||||
x.test2()
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret5 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret501 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.hashCode()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret502 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.toString()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret503 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x == null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.test()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret504 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.equals("")
|
||||
}
|
||||
|
||||
""
|
||||
}
|
||||
val ret505 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.hashCode()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret506 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.toString()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret507 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
if (x === null) {
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.test()
|
||||
}
|
||||
""
|
||||
}
|
||||
val ret508 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
val x = get()
|
||||
<!TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?"), TYPE_MISMATCH("Any; Nothing?")!>x<!>.test()
|
||||
""
|
||||
}
|
||||
val ret51 = build {
|
||||
emit(1)
|
||||
emit(null)
|
||||
get()?.test()
|
||||
@@ -126,10 +305,6 @@ fun test() {
|
||||
if (x == null) {
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.hashCode()
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.equals(1)
|
||||
x.equals("")
|
||||
x.hashCode()
|
||||
x.toString()
|
||||
x<!UNSAFE_CALL!>.<!>test()
|
||||
<!DEBUG_INFO_CONSTANT!>x<!>?.test2()
|
||||
x.test2()
|
||||
}
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ fun test(a: String?) {
|
||||
get()?.equals("")
|
||||
val x = get()
|
||||
x?.equals("")
|
||||
x ?: 1
|
||||
x <!USELESS_ELVIS!>?: 1<!>
|
||||
x!!
|
||||
""
|
||||
}
|
||||
@@ -55,7 +55,7 @@ fun test(a: String?) {
|
||||
get()?.equals("")
|
||||
val x = get()
|
||||
x?.equals("")
|
||||
x ?: 1
|
||||
x <!USELESS_ELVIS!>?: 1<!>
|
||||
x!!
|
||||
""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user