From d4e8a30dcfd6c47c6e4f52b01daccb25de76e093 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Fri, 9 Jun 2017 12:32:18 +0300 Subject: [PATCH] [NI] Fix nullability for captured type in input types approximation --- .../src/org/jetbrains/kotlin/types/checker/NewCapturedType.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewCapturedType.kt b/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewCapturedType.kt index a7f6ae799a0..0d61a3785fa 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewCapturedType.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewCapturedType.kt @@ -40,7 +40,9 @@ fun prepareArgumentTypeRegardingCaptureTypes(argumentType: UnwrappedType): Unwra } if (simpleType is NewCapturedType) { // todo may be we should respect flexible capture types also... - return simpleType.constructor.supertypes.takeIf { it.isNotEmpty() }?.let{ intersectTypes(it) } ?: argumentType.builtIns.nullableAnyType + return simpleType.constructor.supertypes.takeIf { it.isNotEmpty() }?.let { + intersectTypes(it).makeNullableAsSpecified(simpleType.isMarkedNullable) + } ?: argumentType.builtIns.nullableAnyType } return captureFromExpression(simpleType) }