Got rid of constructors/initializers zoo in property descriptors

This commit is contained in:
Evgeny Gerashchenko
2014-03-25 19:17:06 +04:00
parent eaad1f9f50
commit 1aaea21f63
6 changed files with 43 additions and 49 deletions
@@ -43,7 +43,7 @@ public class AccessorForPropertyDescriptor extends PropertyDescriptorImpl {
@NotNull DeclarationDescriptor containingDeclaration,
int index
) {
super(containingDeclaration, Annotations.EMPTY, Modality.FINAL, Visibilities.LOCAL,
super(null, containingDeclaration, Annotations.EMPTY, Modality.FINAL, Visibilities.LOCAL,
original.isVar(), Name.identifier(original.getName() + "$b$" + index),
Kind.DECLARATION);
@@ -821,7 +821,7 @@ public class DescriptorResolver {
) {
DeclarationDescriptor containingDeclaration = scope.getContainingDeclaration();
if (JetPsiUtil.isScriptDeclaration(variable)) {
PropertyDescriptorImpl propertyDescriptor = new PropertyDescriptorImpl(
PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create(
containingDeclaration,
annotationResolver.resolveAnnotationsWithArguments(scope, variable.getModifierList(), trace),
Modality.FINAL,
@@ -883,7 +883,7 @@ public class DescriptorResolver {
? resolveModalityFromModifiers(property, getDefaultModality(containingDeclaration, hasBody))
: Modality.FINAL;
Visibility visibility = resolveVisibilityFromModifiers(property, getDefaultVisibility(property, containingDeclaration));
PropertyDescriptorImpl propertyDescriptor = new PropertyDescriptorImpl(
PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create(
containingDeclaration,
annotationResolver.resolveAnnotationsWithoutArguments(scope, modifierList, trace),
modality,
@@ -1287,7 +1287,7 @@ public class DescriptorResolver {
}
}
PropertyDescriptorImpl propertyDescriptor = new PropertyDescriptorImpl(
PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create(
classDescriptor,
valueParameter.getAnnotations(),
resolveModalityFromModifiers(parameter, Modality.FINAL),
@@ -32,6 +32,6 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja
boolean isVar,
@NotNull Name name
) {
super(containingDeclaration, annotations, Modality.FINAL, visibility, isVar, name, Kind.DECLARATION);
super(null, containingDeclaration, annotations, Modality.FINAL, visibility, isVar, name, Kind.DECLARATION);
}
}
@@ -80,13 +80,13 @@ public class ScriptDescriptor extends DeclarationDescriptorNonRootImpl {
this.returnType = returnType;
scriptCodeDescriptor.initialize(implicitReceiver, valueParameters, returnType);
PropertyDescriptorImpl propertyDescriptor = new PropertyDescriptorImpl(classDescriptor,
Annotations.EMPTY,
Modality.FINAL,
Visibilities.PUBLIC,
false,
Name.identifier(LAST_EXPRESSION_VALUE_FIELD_NAME),
CallableMemberDescriptor.Kind.DECLARATION);
PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create(classDescriptor,
Annotations.EMPTY,
Modality.FINAL,
Visibilities.PUBLIC,
false,
Name.identifier(LAST_EXPRESSION_VALUE_FIELD_NAME),
CallableMemberDescriptor.Kind.DECLARATION);
propertyDescriptor.setType(
returnType,
Collections.<TypeParameterDescriptor>emptyList(),
@@ -164,13 +164,13 @@ public class ScriptDescriptor extends DeclarationDescriptorNonRootImpl {
classDescriptor.setPrimaryConstructor(constructorDescriptor);
for (ValueParameterDescriptor parameter : valueParameters) {
PropertyDescriptorImpl propertyDescriptor = new PropertyDescriptorImpl(classDescriptor,
Annotations.EMPTY,
Modality.FINAL,
Visibilities.PUBLIC,
false,
parameter.getName(),
CallableMemberDescriptor.Kind.DECLARATION);
PropertyDescriptorImpl propertyDescriptor = PropertyDescriptorImpl.create(classDescriptor,
Annotations.EMPTY,
Modality.FINAL,
Visibilities.PUBLIC,
false,
parameter.getName(),
CallableMemberDescriptor.Kind.DECLARATION);
propertyDescriptor.setType(
parameter.getType(),
Collections.<TypeParameterDescriptor>emptyList(),
@@ -70,7 +70,7 @@ public class PropertyDescriptorImpl extends VariableDescriptorImpl implements Pr
this.kind = kind;
}
public PropertyDescriptorImpl(
public static PropertyDescriptorImpl create(
@NotNull DeclarationDescriptor containingDeclaration,
@NotNull Annotations annotations,
@NotNull Modality modality,
@@ -79,23 +79,7 @@ public class PropertyDescriptorImpl extends VariableDescriptorImpl implements Pr
@NotNull Name name,
@NotNull Kind kind
) {
this(null, containingDeclaration, annotations, modality, visibility, isVar, name, kind);
}
public PropertyDescriptorImpl(
@NotNull DeclarationDescriptor containingDeclaration,
@NotNull Annotations annotations,
@NotNull Modality modality,
@NotNull Visibility visibility,
boolean isVar,
@Nullable JetType receiverType,
@Nullable ReceiverParameterDescriptor expectedThisObject,
@NotNull Name name,
@NotNull JetType outType,
@NotNull Kind kind
) {
this(containingDeclaration, annotations, modality, visibility, isVar, name, kind);
setType(outType, Collections.<TypeParameterDescriptor>emptyList(), expectedThisObject, receiverType);
return new PropertyDescriptorImpl(null, containingDeclaration, annotations, modality, visibility, isVar, name, kind);
}
public void setType(
@@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
import org.jetbrains.jet.lang.descriptors.impl.PropertyDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
@@ -243,19 +242,30 @@ public class ErrorUtils {
}
private static final JetType ERROR_PROPERTY_TYPE = createErrorType("<ERROR PROPERTY TYPE>");
private static final VariableDescriptor ERROR_PROPERTY = new PropertyDescriptorImpl(
ERROR_CLASS,
Annotations.EMPTY,
Modality.OPEN,
Visibilities.INTERNAL,
true,
null,
ReceiverParameterDescriptor.NO_RECEIVER_PARAMETER,
Name.special("<ERROR PROPERTY>"),
ERROR_PROPERTY_TYPE,
CallableMemberDescriptor.Kind.DECLARATION);
private static final VariableDescriptor ERROR_PROPERTY = createErrorProperty();
private static final Set<VariableDescriptor> ERROR_PROPERTY_GROUP = Collections.singleton(ERROR_PROPERTY);
@NotNull
private static PropertyDescriptorImpl createErrorProperty() {
PropertyDescriptorImpl descriptor = PropertyDescriptorImpl.create(
ERROR_CLASS,
Annotations.EMPTY,
Modality.OPEN,
Visibilities.INTERNAL,
true,
Name.special("<ERROR PROPERTY>"),
CallableMemberDescriptor.Kind.DECLARATION
);
descriptor.setType(ERROR_PROPERTY_TYPE,
Collections.<TypeParameterDescriptor>emptyList(),
ReceiverParameterDescriptor.NO_RECEIVER_PARAMETER,
(JetType) null
);
return descriptor;
}
@NotNull
private static SimpleFunctionDescriptor createErrorFunction(@NotNull ErrorScope ownerScope) {
ErrorSimpleFunctionDescriptorImpl function = new ErrorSimpleFunctionDescriptorImpl(ownerScope);