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 com.google.common.collect.*
import org.jetbrains.kotlin.builtins.KotlinBuiltIns 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.KotlinType
import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.isFlexible import org.jetbrains.kotlin.types.typeUtil.*
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
import java.util.* import java.util.*
import org.jetbrains.kotlin.resolve.calls.smartcasts.Nullability.NOT_NULL
internal class DelegatingDataFlowInfo private constructor( internal class DelegatingDataFlowInfo private constructor(
private val parent: DataFlowInfo?, private val parent: DataFlowInfo?,
private val nullabilityInfo: ImmutableMap<DataFlowValue, Nullability>, private val nullabilityInfo: ImmutableMap<DataFlowValue, Nullability>,
@@ -102,13 +104,10 @@ internal class DelegatingDataFlowInfo private constructor(
} }
val enrichedTypes = Sets.newHashSetWithExpectedSize<KotlinType>(types.size + 1) val enrichedTypes = Sets.newHashSetWithExpectedSize<KotlinType>(types.size + 1)
val originalType = key.type val originalType = key.type
val notNullable = TypeUtils.makeNotNullable(originalType) if (originalType.isMarkedNullable) {
if (notNullable != originalType) { enrichedTypes.add(TypeUtils.makeNotNullable(originalType))
enrichedTypes.add(notNullable)
} }
for (type in types) { for (type in types) {
enrichedTypes.add(TypeUtils.makeNotNullable(type)) enrichedTypes.add(TypeUtils.makeNotNullable(type))
} }