Add JetType.isError()

Instead of ErrorUtils.isErrorType() which does several instanceof checks anyway
This commit is contained in:
Alexander Udalov
2013-09-16 15:37:53 +04:00
parent bab8fafd7b
commit b7f1e61be9
40 changed files with 105 additions and 92 deletions
@@ -19,7 +19,10 @@ package org.jetbrains.jet.descriptors.serialization;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeConstructor;
import org.jetbrains.jet.lang.types.TypeProjection;
import org.jetbrains.jet.lang.types.Variance;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.renderer.DescriptorRenderer;
@@ -325,7 +328,7 @@ public class DescriptorSerializer {
@NotNull
public ProtoBuf.Type.Builder type(@NotNull JetType type) {
assert !ErrorUtils.isErrorType(type) : "Can't serialize error types: " + type; // TODO
assert !type.isError() : "Can't serialize error types: " + type; // TODO
ProtoBuf.Type.Builder builder = ProtoBuf.Type.newBuilder();
@@ -26,7 +26,9 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.lazy.storage.*;
import org.jetbrains.jet.lang.resolve.lazy.storage.MemoizedFunctionToNullable;
import org.jetbrains.jet.lang.resolve.lazy.storage.NotNullLazyValue;
import org.jetbrains.jet.lang.resolve.lazy.storage.StorageManager;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
@@ -241,12 +243,11 @@ public class TypeDeserializer {
@NotNull
private JetScope computeMemberScope() {
TypeConstructor typeConstructor = getConstructor();
if (ErrorUtils.isError(typeConstructor)) {
return ErrorUtils.createErrorScope(typeConstructor.toString());
if (isError()) {
return ErrorUtils.createErrorScope(getConstructor().toString());
}
else {
return getTypeMemberScope(typeConstructor, getArguments());
return getTypeMemberScope(getConstructor(), getArguments());
}
}
@@ -256,6 +257,11 @@ public class TypeDeserializer {
return memberScope.compute();
}
@Override
public boolean isError() {
return ErrorUtils.isError(getConstructor());
}
@Override
public List<AnnotationDescriptor> getAnnotations() {
return Collections.emptyList();