diff --git a/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java b/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
index 5d727b16dba..4fabaf44872 100644
--- a/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
+++ b/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java
@@ -392,6 +392,10 @@ public class TopDownAnalyzer {
if (setter != null && setterDescriptor != null) {
resolveFunctionBody(fieldAccessTrackingTrace, setter, setterDescriptor, accessorScope);
}
+
+ if (!declaration.isVar() && initializer != null && !trace.hasBackingField(propertyDescriptor)) {
+ semanticServices.getErrorHandler().genericError(initializer.getNode(), "Initializer is not allowed here because this property has no setter and no backing field either");
+ }
}
}
diff --git a/idea/testData/checker/Properties.jet b/idea/testData/checker/Properties.jet
index f27d32062e5..8199b9a165e 100644
--- a/idea/testData/checker/Properties.jet
+++ b/idea/testData/checker/Properties.jet
@@ -5,10 +5,13 @@
$x = 1.lng
}
- val xx : Int = 1 + x
+ val xx : Int = 1 + x
get() : Int = 1
set(ref value : Long) {$x = value}
+ val p : Int = 1
+ get() = 1
+
class Test {
var a : Int
var b : Int get() = $a; set(x) {a = x; $a = x}