Setter diagnostics fixed

This commit is contained in:
Andrey Breslav
2011-09-05 20:22:32 +04:00
parent ecd63c5f73
commit 8801cf37fe
2 changed files with 9 additions and 9 deletions
@@ -568,13 +568,7 @@ public class ClassDescriptorResolver {
@Nullable
private PropertySetterDescriptor resolvePropertySetterDescriptor(@NotNull JetScope scope, @NotNull JetProperty property, @NotNull PropertyDescriptor propertyDescriptor) {
JetPropertyAccessor setter = property.getSetter();
if (! property.isVar()) {
if (setter != null) {
trace.getErrorHandler().genericError(setter.asElement().getNode(), "A 'val'-property cannot have a setter");
}
return null;
}
PropertySetterDescriptor setterDescriptor;
PropertySetterDescriptor setterDescriptor = null;
if (setter != null) {
List<AnnotationDescriptor> annotations = annotationResolver.resolveAnnotations(scope, setter.getModifierList());
JetParameter parameter = setter.getParameter();
@@ -616,11 +610,17 @@ public class ClassDescriptorResolver {
}
trace.record(BindingContext.PROPERTY_ACCESSOR, setter, setterDescriptor);
}
else {
else if (property.isVar()) {
setterDescriptor = new PropertySetterDescriptor(
propertyDescriptor.getModifiers(),
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;
}
+1 -1
View File
@@ -7,7 +7,7 @@
val xx : Int = <error>1 + x</error>
get() : Int = 1
<error>set(ref value : Long) {$x = value}</error>
<error>set(value : Long) {}</error>
val p : Int = <error>1</error>
get() = 1