Fix for EA-53605 - UOE: PackageType.throwException

This commit is contained in:
Andrey Breslav
2014-05-19 11:38:53 +04:00
parent 8885d5709e
commit f72dcb8ee2
5 changed files with 27 additions and 3 deletions
@@ -84,4 +84,9 @@ public class PackageType implements JetType {
throwException();
return null;
}
@Override
public String toString() {
return "[Package-type " + name + "]";
}
}
@@ -727,7 +727,7 @@ public class KotlinBuiltIns {
}
public boolean isFunctionType(@NotNull JetType type) {
if (setContainsClassOf(functionClassesSet, type)) return true;
if (!(type instanceof PackageType) && setContainsClassOf(functionClassesSet, type)) return true;
for (JetType superType : type.getConstructor().getSupertypes()) {
if (isFunctionType(superType)) return true;
@@ -737,11 +737,12 @@ public class KotlinBuiltIns {
}
public boolean isExactFunctionOrExtensionFunctionType(@NotNull JetType type) {
return setContainsClassOf(extensionFunctionClassesSet, type) || setContainsClassOf(functionClassesSet, type);
return !(type instanceof PackageType)
&& (setContainsClassOf(extensionFunctionClassesSet, type) || setContainsClassOf(functionClassesSet, type));
}
public boolean isExtensionFunctionType(@NotNull JetType type) {
if (setContainsClassOf(extensionFunctionClassesSet, type)) return true;
if (!(type instanceof PackageType) && setContainsClassOf(extensionFunctionClassesSet, type)) return true;
for (JetType superType : type.getConstructor().getSupertypes()) {
if (isExtensionFunctionType(superType)) return true;
@@ -245,6 +245,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
return "???";
}
if (type instanceof PackageType) {
return type.toString();
}
if (type instanceof LazyType && debugMode) {
return type.toString();
}