Fix false positive unreachable code in case of Nothing!-typed calls
Note, that this change potentially has some other effects in corner cases (like the changed test data that is rather sensible because `bar` in the example is not effectively projected out and can be called with nulls) Probably, we need to consider rewriting all other isSomeType methods in KotlinBuiltins, but now it seems to be a rather dangerous change #KT-16424 Fixed
This commit is contained in:
@@ -976,12 +976,12 @@ public abstract class KotlinBuiltIns {
|
||||
|
||||
public static boolean isNothing(@NotNull KotlinType type) {
|
||||
return isNothingOrNullableNothing(type)
|
||||
&& !type.isMarkedNullable();
|
||||
&& !TypeUtils.isNullableType(type);
|
||||
}
|
||||
|
||||
public static boolean isNullableNothing(@NotNull KotlinType type) {
|
||||
return isNothingOrNullableNothing(type)
|
||||
&& type.isMarkedNullable();
|
||||
&& TypeUtils.isNullableType(type);
|
||||
}
|
||||
|
||||
public static boolean isNothingOrNullableNothing(@NotNull KotlinType type) {
|
||||
|
||||
Reference in New Issue
Block a user