TypeIntersector: refactor it to being a static utility

Deal with intersecting empty set of types on the call site
This commit is contained in:
Pavel V. Talanov
2015-09-21 18:40:45 +03:00
parent b85fe40275
commit b9da08d11c
13 changed files with 29 additions and 53 deletions
@@ -176,7 +176,10 @@ class LazyJavaTypeResolver(
for (supertype in (classifier() as JavaTypeParameter).getUpperBounds()) {
supertypesJet.add(transformJavaType(supertype, UPPER_BOUND.toAttributes()))
}
return TypeIntersector.intersectTypes(KotlinBuiltIns.getInstance(), JetTypeChecker.DEFAULT, supertypesJet)
if (supertypesJet.isEmpty()) {
return c.module.builtIns.nullableAnyType
}
return TypeIntersector.intersectTypes(JetTypeChecker.DEFAULT, supertypesJet)
?: ErrorUtils.createErrorType("Can't intersect upper bounds of " + javaType.getPresentableText())
}