Setter diagnostics fixed
This commit is contained in:
@@ -568,13 +568,7 @@ public class ClassDescriptorResolver {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private PropertySetterDescriptor resolvePropertySetterDescriptor(@NotNull JetScope scope, @NotNull JetProperty property, @NotNull PropertyDescriptor propertyDescriptor) {
|
private PropertySetterDescriptor resolvePropertySetterDescriptor(@NotNull JetScope scope, @NotNull JetProperty property, @NotNull PropertyDescriptor propertyDescriptor) {
|
||||||
JetPropertyAccessor setter = property.getSetter();
|
JetPropertyAccessor setter = property.getSetter();
|
||||||
if (! property.isVar()) {
|
PropertySetterDescriptor setterDescriptor = null;
|
||||||
if (setter != null) {
|
|
||||||
trace.getErrorHandler().genericError(setter.asElement().getNode(), "A 'val'-property cannot have a setter");
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PropertySetterDescriptor setterDescriptor;
|
|
||||||
if (setter != null) {
|
if (setter != null) {
|
||||||
List<AnnotationDescriptor> annotations = annotationResolver.resolveAnnotations(scope, setter.getModifierList());
|
List<AnnotationDescriptor> annotations = annotationResolver.resolveAnnotations(scope, setter.getModifierList());
|
||||||
JetParameter parameter = setter.getParameter();
|
JetParameter parameter = setter.getParameter();
|
||||||
@@ -616,11 +610,17 @@ public class ClassDescriptorResolver {
|
|||||||
}
|
}
|
||||||
trace.record(BindingContext.PROPERTY_ACCESSOR, setter, setterDescriptor);
|
trace.record(BindingContext.PROPERTY_ACCESSOR, setter, setterDescriptor);
|
||||||
}
|
}
|
||||||
else {
|
else if (property.isVar()) {
|
||||||
setterDescriptor = new PropertySetterDescriptor(
|
setterDescriptor = new PropertySetterDescriptor(
|
||||||
propertyDescriptor.getModifiers(),
|
propertyDescriptor.getModifiers(),
|
||||||
propertyDescriptor, Collections.<AnnotationDescriptor>emptyList(), false, true);
|
propertyDescriptor, Collections.<AnnotationDescriptor>emptyList(), false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! property.isVar()) {
|
||||||
|
if (setter != null) {
|
||||||
|
trace.getErrorHandler().genericError(setter.asElement().getNode(), "A 'val'-property cannot have a setter");
|
||||||
|
}
|
||||||
|
}
|
||||||
return setterDescriptor;
|
return setterDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
val xx : Int = <error>1 + x</error>
|
val xx : Int = <error>1 + x</error>
|
||||||
get() : Int = 1
|
get() : Int = 1
|
||||||
<error>set(ref value : Long) {$x = value}</error>
|
<error>set(value : Long) {}</error>
|
||||||
|
|
||||||
val p : Int = <error>1</error>
|
val p : Int = <error>1</error>
|
||||||
get() = 1
|
get() = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user