Temporarily reverted commit "Smart cast to not null should affect flexible types too" because it causes exception in compiler

This commit is contained in:
Valentin Kipyatkov
2016-06-20 23:18:29 +03:00
parent 311301f430
commit 4a7a04e366
@@ -18,13 +18,15 @@ package org.jetbrains.kotlin.resolve.calls.smartcasts
import com.google.common.collect.*
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.resolve.calls.smartcasts.Nullability.NOT_NULL
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.isFlexible
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
import org.jetbrains.kotlin.types.typeUtil.*
import java.util.*
import org.jetbrains.kotlin.resolve.calls.smartcasts.Nullability.NOT_NULL
internal class DelegatingDataFlowInfo private constructor(
private val parent: DataFlowInfo?,
private val nullabilityInfo: ImmutableMap<DataFlowValue, Nullability>,
@@ -102,13 +104,10 @@ internal class DelegatingDataFlowInfo private constructor(
}
val enrichedTypes = Sets.newHashSetWithExpectedSize<KotlinType>(types.size + 1)
val originalType = key.type
val notNullable = TypeUtils.makeNotNullable(originalType)
if (notNullable != originalType) {
enrichedTypes.add(notNullable)
if (originalType.isMarkedNullable) {
enrichedTypes.add(TypeUtils.makeNotNullable(originalType))
}
for (type in types) {
enrichedTypes.add(TypeUtils.makeNotNullable(type))
}