Fix nullability quick-fixes with implicit receiver #KT-17726 Fixed

This commit is contained in:
Dmitry Neverov
2017-05-21 07:07:43 +02:00
committed by Mikhail Glukhikh
parent 9d2ae54d2c
commit 46aaee5d05
44 changed files with 479 additions and 23 deletions
+7
View File
@@ -0,0 +1,7 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.apply {
this<caret>.length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.apply {
this?.length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (this?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.apply {
<caret>length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (this?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.apply {
this?.length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (this?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.apply {
<caret>toLowerCase()
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (this?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.apply {
this?.toLowerCase()
}
}
@@ -0,0 +1,5 @@
// "Replace with safe (this?.) call" "true"
// WITH_RUNTIME
fun String?.foo() {
<caret>toLowerCase()
}
@@ -0,0 +1,5 @@
// "Replace with safe (this?.) call" "true"
// WITH_RUNTIME
fun String?.foo() {
this?.toLowerCase()
}
@@ -0,0 +1,5 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a<caret>.toLowerCase()
}
@@ -0,0 +1,5 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a?.toLowerCase()
}
+7
View File
@@ -0,0 +1,7 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.let {
it<caret>.length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.let {
it?.length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.let { b ->
b<caret>.length
}
}
@@ -0,0 +1,7 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a.let { b ->
b?.length
}
}
@@ -0,0 +1,15 @@
// "Replace with safe (?.) call" "false"
// ACTION: Add non-null asserted (!!) call
// ACTION: Convert to expression body
// ACTION: Replace with safe (this?.) call
// ACTION: Wrap with '?.let { ... }' call
// ERROR: Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type A?
class A {
fun foo() {
}
}
fun A?.bar() {
<caret>foo()
}
+5
View File
@@ -0,0 +1,5 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a<caret>.length
}
@@ -0,0 +1,5 @@
// "Replace with safe (?.) call" "true"
// WITH_RUNTIME
fun foo(a: String?) {
a?.length
}