Nullability of intersection type should be determined by supertypes

Intersection types cannot be nullable as is because of special rules for subtyping
This commit is contained in:
Mikhail Zarechenskiy
2018-03-29 16:24:18 +03:00
parent aebcb61402
commit 0632bbbed0
6 changed files with 58 additions and 0 deletions
@@ -265,6 +265,14 @@ public class TypeUtils {
if (isTypeParameter(type)) {
return hasNullableSuperType(type);
}
TypeConstructor constructor = type.getConstructor();
if (constructor instanceof IntersectionTypeConstructor) {
for (KotlinType supertype : constructor.getSupertypes()) {
if (isNullableType(supertype)) return true;
}
}
return false;
}