Set return type for the fake constructor of a class object

This commit is contained in:
Andrey Breslav
2012-06-26 18:00:23 +02:00
parent 2c688a5e3c
commit fe394b9827
2 changed files with 16 additions and 3 deletions
@@ -292,7 +292,8 @@ public class TypeHierarchyResolver {
classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList()));
classObjectDescriptor.setTypeParameterDescriptors(new ArrayList<TypeParameterDescriptor>(0));
classObjectDescriptor.createTypeConstructor();
createPrimaryConstructorForObject(null, classObjectDescriptor);
ConstructorDescriptorImpl primaryConstructorForObject = createPrimaryConstructorForObject(null, classObjectDescriptor);
primaryConstructorForObject.setReturnType(classObjectDescriptor.getDefaultType());
mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor);
}
}
@@ -327,10 +328,12 @@ public class TypeHierarchyResolver {
return mutableClassDescriptor;
}
private void createPrimaryConstructorForObject(@Nullable PsiElement object, MutableClassDescriptor mutableClassDescriptor) {
ConstructorDescriptor constructorDescriptor = DescriptorResolver
private ConstructorDescriptorImpl createPrimaryConstructorForObject(@Nullable PsiElement object,
MutableClassDescriptor mutableClassDescriptor) {
ConstructorDescriptorImpl constructorDescriptor = DescriptorResolver
.createPrimaryConstructorForObject(object, mutableClassDescriptor, trace);
mutableClassDescriptor.setPrimaryConstructor(constructorDescriptor, trace);
return constructorDescriptor;
}
private void prepareForDeferredCall(@NotNull JetScope outerScope,