Fix false positive "Null can not be a value of a non-null type"
Inferred type of receiver of orElse is Optional<T & Any> Generic descriptor is orElse(E!): E! Substituted descriptor is orElse(T): T , and that is the problem. Seems that E! => (T & Any)! gets expanded to just T or T & Any , however it should be expanded to (T & Any) .. (T & Any)? => T & Any .. T & Any T & Any is NotNullTypeParameter(T) The problem is that (T & Any)? is expanded to T & Any, that is seems to be wrong. #KT-15236 Fixed
This commit is contained in:
+6
@@ -48,6 +48,12 @@ public class DiagnosticsWithJava8TestGenerated extends AbstractDiagnosticsWithFu
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("nullForOptionalOrElse.kt")
|
||||
public void testNullForOptionalOrElse() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJava8/nullForOptionalOrElse.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("samWithConsumer.kt")
|
||||
public void testSamWithConsumer() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJava8/samWithConsumer.kt");
|
||||
|
||||
Reference in New Issue
Block a user