Serialize error type to proto when generating stubs

This commit is contained in:
Alexey Tsvetkov
2016-04-28 16:45:36 +03:00
parent 8d189bae55
commit f2ca788ea3
3 changed files with 23 additions and 3 deletions
@@ -459,7 +459,12 @@ public class DescriptorSerializer {
@NotNull
private ProtoBuf.Type.Builder type(@NotNull KotlinType type) {
assert !type.isError() : "Can't serialize error types: " + type; // TODO
ProtoBuf.Type.Builder builder = ProtoBuf.Type.newBuilder();
if (type.isError()) {
extension.serializeErrorType(type, builder);
return builder;
}
if (FlexibleTypesKt.isFlexible(type)) {
Flexibility flexibility = FlexibleTypesKt.flexibility(type);
@@ -475,8 +480,6 @@ public class DescriptorSerializer {
return lowerBound;
}
ProtoBuf.Type.Builder builder = ProtoBuf.Type.newBuilder();
ClassifierDescriptor descriptor = type.getConstructor().getDeclarationDescriptor();
if (descriptor instanceof ClassDescriptor) {
PossiblyInnerType possiblyInnerType = TypeParameterUtilsKt.buildPossiblyInnerType(type);
@@ -54,4 +54,8 @@ public abstract class SerializerExtension {
public void serializeTypeParameter(@NotNull TypeParameterDescriptor typeParameter, @NotNull ProtoBuf.TypeParameter.Builder proto) {
}
public void serializeErrorType(@NotNull KotlinType type, @NotNull ProtoBuf.Type.Builder builder) {
throw new IllegalStateException("Cannot serialize error type: " + type);
}
}