Set return type for the fake constructor of a class object
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace <root>
|
||||
|
||||
internal final enum class Test : jet.Any {
|
||||
public final /*constructor*/ fun <init>(/*0*/ a: jet.Int): Test
|
||||
internal final object Test.<class-object-for-Test> {
|
||||
internal final /*constructor*/ fun <init>(): Test.<class-object-for-Test>
|
||||
internal final val A: Test.<class-object-for-Test>.A
|
||||
internal final val C: Test.<class-object-for-Test>.C
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user