Get rid of isConstructorOfStaticNestedClass()
This value can always be computed in ConstructorDescriptorImpl#initialize
This commit is contained in:
+9
-8
@@ -59,19 +59,20 @@ public class ConstructorDescriptorImpl extends FunctionDescriptorImpl implements
|
||||
public ConstructorDescriptorImpl initialize(
|
||||
@NotNull List<TypeParameterDescriptor> typeParameters,
|
||||
@NotNull List<ValueParameterDescriptor> unsubstitutedValueParameters,
|
||||
@NotNull Visibility visibility,
|
||||
boolean isStatic
|
||||
@NotNull Visibility visibility
|
||||
) {
|
||||
super.initialize(null, isStatic ? NO_RECEIVER_PARAMETER : getExpectedThisObject(getContainingDeclaration()), typeParameters,
|
||||
unsubstitutedValueParameters, null, Modality.FINAL, visibility);
|
||||
super.initialize(null, calculateExpectedThisObject(), typeParameters, unsubstitutedValueParameters, null, Modality.FINAL, visibility);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static ReceiverParameterDescriptor getExpectedThisObject(@NotNull ClassDescriptor descriptor) {
|
||||
DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration();
|
||||
if (containingDeclaration instanceof ClassDescriptor) {
|
||||
return ((ClassDescriptor) containingDeclaration).getThisAsReceiverParameter();
|
||||
private ReceiverParameterDescriptor calculateExpectedThisObject() {
|
||||
ClassDescriptor classDescriptor = getContainingDeclaration();
|
||||
if (classDescriptor.isInner()) {
|
||||
DeclarationDescriptor classContainer = classDescriptor.getContainingDeclaration();
|
||||
if (classContainer instanceof ClassDescriptor) {
|
||||
return ((ClassDescriptor) classContainer).getThisAsReceiverParameter();
|
||||
}
|
||||
}
|
||||
return NO_RECEIVER_PARAMETER;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class DescriptorFactory {
|
||||
public DefaultConstructorDescriptor(@NotNull ClassDescriptor containingClass, @NotNull SourceElement source) {
|
||||
super(containingClass, null, Annotations.EMPTY, true, Kind.DECLARATION, source);
|
||||
initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(),
|
||||
getDefaultConstructorVisibility(containingClass), true);
|
||||
getDefaultConstructorVisibility(containingClass));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -315,10 +315,6 @@ public class DescriptorUtils {
|
||||
return receiverParameterDescriptor == null ? null : receiverParameterDescriptor.getType();
|
||||
}
|
||||
|
||||
public static boolean isConstructorOfStaticNestedClass(@Nullable CallableDescriptor descriptor) {
|
||||
return descriptor instanceof ConstructorDescriptor && isStaticNestedClass(descriptor.getContainingDeclaration());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if descriptor is a class inside another class and does not have access to the outer class
|
||||
*/
|
||||
|
||||
@@ -233,7 +233,7 @@ public class ErrorUtils {
|
||||
|
||||
ConstructorDescriptorImpl errorConstructor = ConstructorDescriptorImpl.create(this, Annotations.EMPTY, true, SourceElement.NO_SOURCE);
|
||||
errorConstructor.initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(),
|
||||
Visibilities.INTERNAL, false);
|
||||
Visibilities.INTERNAL);
|
||||
JetScope memberScope = createErrorScope(getName().asString());
|
||||
errorConstructor.setReturnType(
|
||||
new ErrorTypeImpl(
|
||||
|
||||
Reference in New Issue
Block a user