KT-509 Properties declared as constuctor parameters do not have accessor descriptors.
This commit is contained in:
@@ -682,10 +682,7 @@ public class DescriptorResolver {
|
|||||||
trace.record(BindingContext.PROPERTY_ACCESSOR, setter, setterDescriptor);
|
trace.record(BindingContext.PROPERTY_ACCESSOR, setter, setterDescriptor);
|
||||||
}
|
}
|
||||||
else if (property.isVar()) {
|
else if (property.isVar()) {
|
||||||
setterDescriptor = new PropertySetterDescriptor(
|
setterDescriptor = createDefaultSetter(propertyDescriptor);
|
||||||
propertyDescriptor.getModality(),
|
|
||||||
propertyDescriptor.getVisibility(),
|
|
||||||
propertyDescriptor, Collections.<AnnotationDescriptor>emptyList(), false, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! property.isVar()) {
|
if (! property.isVar()) {
|
||||||
@@ -697,6 +694,15 @@ public class DescriptorResolver {
|
|||||||
return setterDescriptor;
|
return setterDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private PropertySetterDescriptor createDefaultSetter(PropertyDescriptor propertyDescriptor) {
|
||||||
|
PropertySetterDescriptor setterDescriptor;
|
||||||
|
setterDescriptor = new PropertySetterDescriptor(
|
||||||
|
propertyDescriptor.getModality(),
|
||||||
|
propertyDescriptor.getVisibility(),
|
||||||
|
propertyDescriptor, Collections.<AnnotationDescriptor>emptyList(), false, true);
|
||||||
|
return setterDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private PropertyGetterDescriptor resolvePropertyGetterDescriptor(@NotNull JetScope scope, @NotNull JetProperty property, @NotNull PropertyDescriptor propertyDescriptor) {
|
private PropertyGetterDescriptor resolvePropertyGetterDescriptor(@NotNull JetScope scope, @NotNull JetProperty property, @NotNull PropertyDescriptor propertyDescriptor) {
|
||||||
PropertyGetterDescriptor getterDescriptor;
|
PropertyGetterDescriptor getterDescriptor;
|
||||||
@@ -722,14 +728,20 @@ public class DescriptorResolver {
|
|||||||
trace.record(BindingContext.PROPERTY_ACCESSOR, getter, getterDescriptor);
|
trace.record(BindingContext.PROPERTY_ACCESSOR, getter, getterDescriptor);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
getterDescriptor = new PropertyGetterDescriptor(
|
getterDescriptor = createDefaultGetter(propertyDescriptor);
|
||||||
propertyDescriptor, Collections.<AnnotationDescriptor>emptyList(), propertyDescriptor.getModality(),
|
|
||||||
propertyDescriptor.getVisibility(),
|
|
||||||
propertyDescriptor.getOutType(), false, true);
|
|
||||||
}
|
}
|
||||||
return getterDescriptor;
|
return getterDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private PropertyGetterDescriptor createDefaultGetter(PropertyDescriptor propertyDescriptor) {
|
||||||
|
PropertyGetterDescriptor getterDescriptor;
|
||||||
|
getterDescriptor = new PropertyGetterDescriptor(
|
||||||
|
propertyDescriptor, Collections.<AnnotationDescriptor>emptyList(), propertyDescriptor.getModality(),
|
||||||
|
propertyDescriptor.getVisibility(),
|
||||||
|
propertyDescriptor.getOutType(), false, true);
|
||||||
|
return getterDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public ConstructorDescriptorImpl resolveSecondaryConstructorDescriptor(@NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, @NotNull JetSecondaryConstructor constructor) {
|
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());
|
return createConstructorDescriptor(scope, classDescriptor, false, constructor.getModifierList(), constructor, classDescriptor.getTypeConstructor().getParameters(), constructor.getValueParameters());
|
||||||
@@ -800,7 +812,7 @@ public class DescriptorResolver {
|
|||||||
name == null ? "<no name>" : name,
|
name == null ? "<no name>" : name,
|
||||||
isMutable ? type : null,
|
isMutable ? type : null,
|
||||||
type);
|
type);
|
||||||
propertyDescriptor.initialize(Collections.<TypeParameterDescriptor>emptyList(), null, null);
|
propertyDescriptor.initialize(Collections.<TypeParameterDescriptor>emptyList(), createDefaultGetter(propertyDescriptor), createDefaultSetter(propertyDescriptor));
|
||||||
trace.record(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter, propertyDescriptor);
|
trace.record(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter, propertyDescriptor);
|
||||||
return propertyDescriptor;
|
return propertyDescriptor;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user