diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java index 7367a1fbd20..8be709898fd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -682,10 +682,7 @@ public class DescriptorResolver { trace.record(BindingContext.PROPERTY_ACCESSOR, setter, setterDescriptor); } else if (property.isVar()) { - setterDescriptor = new PropertySetterDescriptor( - propertyDescriptor.getModality(), - propertyDescriptor.getVisibility(), - propertyDescriptor, Collections.emptyList(), false, true); + setterDescriptor = createDefaultSetter(propertyDescriptor); } if (! property.isVar()) { @@ -697,6 +694,15 @@ public class DescriptorResolver { return setterDescriptor; } + private PropertySetterDescriptor createDefaultSetter(PropertyDescriptor propertyDescriptor) { + PropertySetterDescriptor setterDescriptor; + setterDescriptor = new PropertySetterDescriptor( + propertyDescriptor.getModality(), + propertyDescriptor.getVisibility(), + propertyDescriptor, Collections.emptyList(), false, true); + return setterDescriptor; + } + @Nullable private PropertyGetterDescriptor resolvePropertyGetterDescriptor(@NotNull JetScope scope, @NotNull JetProperty property, @NotNull PropertyDescriptor propertyDescriptor) { PropertyGetterDescriptor getterDescriptor; @@ -722,14 +728,20 @@ public class DescriptorResolver { trace.record(BindingContext.PROPERTY_ACCESSOR, getter, getterDescriptor); } else { - getterDescriptor = new PropertyGetterDescriptor( - propertyDescriptor, Collections.emptyList(), propertyDescriptor.getModality(), - propertyDescriptor.getVisibility(), - propertyDescriptor.getOutType(), false, true); + getterDescriptor = createDefaultGetter(propertyDescriptor); } return getterDescriptor; } + private PropertyGetterDescriptor createDefaultGetter(PropertyDescriptor propertyDescriptor) { + PropertyGetterDescriptor getterDescriptor; + getterDescriptor = new PropertyGetterDescriptor( + propertyDescriptor, Collections.emptyList(), propertyDescriptor.getModality(), + propertyDescriptor.getVisibility(), + propertyDescriptor.getOutType(), false, true); + return getterDescriptor; + } + @NotNull public ConstructorDescriptorImpl resolveSecondaryConstructorDescriptor(@NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, @NotNull JetSecondaryConstructor constructor) { return createConstructorDescriptor(scope, classDescriptor, false, constructor.getModifierList(), constructor, classDescriptor.getTypeConstructor().getParameters(), constructor.getValueParameters()); @@ -800,7 +812,7 @@ public class DescriptorResolver { name == null ? "" : name, isMutable ? type : null, type); - propertyDescriptor.initialize(Collections.emptyList(), null, null); + propertyDescriptor.initialize(Collections.emptyList(), createDefaultGetter(propertyDescriptor), createDefaultSetter(propertyDescriptor)); trace.record(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter, propertyDescriptor); return propertyDescriptor; }