Revert "[NI] Fix reporting smartcast diagnostics for intersection types"

This reverts commit 033d7262

That commit breaks bootstraping
This commit is contained in:
Dmitriy Novozhilov
2019-04-11 18:49:02 +03:00
parent 849d18669b
commit a92cf19641
15 changed files with 36 additions and 115 deletions
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.resolve.calls.smartcasts
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.diagnostics.Errors
@@ -34,7 +33,6 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.typeUtil.expandIntersectionTypeIfNecessary
import java.util.*
class SmartCastManager {
@@ -180,13 +178,8 @@ class SmartCastManager {
recordExpressionType: Boolean
): SmartCastResult? {
val calleeExpression = call?.calleeExpression
val expectedTypes = if (c.languageVersionSettings.supportsFeature(LanguageFeature.NewInference))
expectedType.expandIntersectionTypeIfNecessary()
else
listOf(expectedType)
for (possibleType in c.dataFlowInfo.getCollectedTypes(dataFlowValue, c.languageVersionSettings)) {
if (expectedTypes.any { ArgumentTypeResolver.isSubtypeOfForArgumentType(possibleType, it) } &&
if (ArgumentTypeResolver.isSubtypeOfForArgumentType(possibleType, expectedType) &&
(additionalPredicate == null || additionalPredicate(possibleType))
) {
if (expression != null) {