Nullability of error types is not known
#KT-6829 Fixed
This commit is contained in:
+2
-2
@@ -152,13 +152,13 @@ private fun checkTypeParameterDescriptorsAreNotReified(
|
|||||||
|
|
||||||
public class JavaNullabilityWarningsChecker : AdditionalTypeChecker {
|
public class JavaNullabilityWarningsChecker : AdditionalTypeChecker {
|
||||||
private fun JetType.mayBeNull(): NullabilityInformationSource? {
|
private fun JetType.mayBeNull(): NullabilityInformationSource? {
|
||||||
if (!isFlexible() && TypeUtils.isNullableType(this)) return NullabilityInformationSource.KOTLIN
|
if (!isError() && !isFlexible() && TypeUtils.isNullableType(this)) return NullabilityInformationSource.KOTLIN
|
||||||
if (getAnnotations().isMarkedNullable()) return NullabilityInformationSource.JAVA
|
if (getAnnotations().isMarkedNullable()) return NullabilityInformationSource.JAVA
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JetType.mustNotBeNull(): NullabilityInformationSource? {
|
private fun JetType.mustNotBeNull(): NullabilityInformationSource? {
|
||||||
if (!isFlexible() && !TypeUtils.isNullableType(this)) return NullabilityInformationSource.KOTLIN
|
if (!isError() && !isFlexible() && !TypeUtils.isNullableType(this)) return NullabilityInformationSource.KOTLIN
|
||||||
if (!isMarkedNullable() && getAnnotations().isMarkedNotNull()) return NullabilityInformationSource.JAVA
|
if (!isMarkedNullable() && getAnnotations().isMarkedNotNull()) return NullabilityInformationSource.JAVA
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
|
||||||
|
// KT-6829 False warning on map to @Nullable
|
||||||
|
|
||||||
|
// FILE: p/J.java
|
||||||
|
package p;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.*;
|
||||||
|
|
||||||
|
public class J {
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String method() { return ""; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: k.kt
|
||||||
|
|
||||||
|
import p.*
|
||||||
|
|
||||||
|
fun foo(collection: Collection<J>) {
|
||||||
|
val mapped = collection.map { it.method() }
|
||||||
|
<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>mapped[0]<!>.length()
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R> {
|
||||||
|
null!!
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
internal fun foo(/*0*/ collection: kotlin.Collection<p.J>): kotlin.Unit
|
||||||
|
public fun </*0*/ T, /*1*/ R> kotlin.Iterable<T>.map(/*0*/ transform: (T) -> R): kotlin.List<R>
|
||||||
@@ -8923,6 +8923,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt6829.kt")
|
||||||
|
public void testKt6829() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/platformTypes/nullabilityWarnings/kt6829.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("multiDeclaration.kt")
|
@TestMetadata("multiDeclaration.kt")
|
||||||
public void testMultiDeclaration() throws Exception {
|
public void testMultiDeclaration() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/platformTypes/nullabilityWarnings/multiDeclaration.kt");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/platformTypes/nullabilityWarnings/multiDeclaration.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user