FIR IDE: quickfix for WrapWithSafeLetCall
There is some behavior change regarding the new WrapWithSafeLetCall quickfix
1. it now works correctly on binary expressions by wrapping it with `()`
2. it now looks for a nullable position upward and do the modification there,
if possible. For example, consider the following code
```
fun bar(s: String): String = s
fun test(s: String?) {
bar(bar(bar(<caret>s)))
}
```
After applying this fix, FE1.0 yields
```
bar(bar(s?.let { bar(it) }))
```
while the new implementation yields
```
s?.let { bar(bar(bar(it))) }
```
This behavior aligns with FE1.0 if `bar` accepts nullable values.
This commit is contained in:
committed by
Ilya Kirillov
parent
0eaab6d8a2
commit
e1b542314a
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.name;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public final class Name implements Comparable<Name> {
|
||||
@NotNull
|
||||
@@ -85,6 +86,12 @@ public final class Name implements Comparable<Name> {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getIdentifierOrNullIfSpecial() {
|
||||
if (special) return null;
|
||||
return asString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name;
|
||||
|
||||
Reference in New Issue
Block a user