EA-109046: Add diagnostic to catch NPE

This commit is contained in:
Simon Ogorodnik
2018-07-11 20:08:34 +03:00
parent 4f1f1e66eb
commit 75fa02646b
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.Constrain
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.checker.StrictEqualityTypeChecker
import org.jetbrains.kotlin.types.typeUtil.*
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
import java.util.*
fun CallableDescriptor.fuzzyReturnType() = returnType?.toFuzzyType(typeParameters)
@@ -88,9 +89,13 @@ class FuzzyType(
}
}
// Diagnostic for EA-109046
@Suppress("USELESS_ELVIS")
private fun TypeParameterDescriptor.toOriginal(): TypeParameterDescriptor {
val callableDescriptor = containingDeclaration as? CallableMemberDescriptor ?: return this
return callableDescriptor.original.typeParameters[index]
val original = callableDescriptor.original ?: error("original = null for $callableDescriptor")
val typeParameters = original.typeParameters ?: error("typeParameters = null for $original")
return typeParameters[index]
}
override fun equals(other: Any?) = other is FuzzyType && other.type == type && other.freeParameters == freeParameters