KT-14400: Properly handle TypeAliasConstructorDescriptor in KotlinTypeMapper.mapToCallableMethod(...)

Implement getDefaultType() in TypeAliasDescriptor subclasses.
This commit is contained in:
Dmitry Petrov
2016-10-18 16:07:30 +03:00
parent 7dce1f438f
commit c41ec1ddfb
12 changed files with 68 additions and 5 deletions
@@ -639,9 +639,13 @@ public class KotlinTypeMapper {
@NotNull
public CallableMethod mapToCallableMethod(@NotNull FunctionDescriptor descriptor, boolean superCall) {
if (descriptor instanceof ConstructorDescriptor) {
if (descriptor instanceof TypeAliasConstructorDescriptor) {
return mapToCallableMethod(((TypeAliasConstructorDescriptor) descriptor).getUnderlyingConstructorDescriptor(), superCall);
}
if (descriptor instanceof ClassConstructorDescriptor) {
JvmMethodSignature method = mapSignatureSkipGeneric(descriptor);
Type owner = mapClass(((ConstructorDescriptor) descriptor).getContainingDeclaration());
Type owner = mapClass(((ClassConstructorDescriptor) descriptor).getContainingDeclaration());
String defaultImplDesc = mapDefaultMethod(descriptor, OwnerKind.IMPLEMENTATION).getDescriptor();
return new CallableMethod(owner, owner, defaultImplDesc, method, INVOKESPECIAL, null, null, null);
}