diff --git a/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java b/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java
index 15ad6d1307f..8b62f57ce68 100644
--- a/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java
+++ b/idea/src/org/jetbrains/jet/lang/annotations/JetPsiChecker.java
@@ -70,7 +70,10 @@ public class JetPsiChecker implements Annotator {
private void markRedeclaration(DeclarationDescriptor redeclaration) {
if (!redeclarations.add(redeclaration)) return;
PsiElement declarationPsiElement = bindingContext.getDeclarationPsiElement(redeclaration);
- if (declarationPsiElement != null) {
+ if (declarationPsiElement instanceof JetNamedDeclaration) {
+ holder.createErrorAnnotation(((JetNamedDeclaration) declarationPsiElement).getNameIdentifier(), "Redeclaration");
+ }
+ else if (declarationPsiElement != null) {
holder.createErrorAnnotation(declarationPsiElement, "Redeclaration");
}
}
diff --git a/idea/testData/checker/Constructors.jet b/idea/testData/checker/Constructors.jet
index a74bb2c2b99..13a787da063 100644
--- a/idea/testData/checker/Constructors.jet
+++ b/idea/testData/checker/Constructors.jet
@@ -33,8 +33,8 @@ class Foo() : WithPC0, this() {
}
-class WithCPI_Dup(x : Int) {
- var x : Int
+class WithCPI_Dup(x : Int) {
+ var x : Int
}
class WithCPI(x : Int) {
diff --git a/idea/testData/checker/regression/Jet17.jet b/idea/testData/checker/regression/Jet17.jet
new file mode 100644
index 00000000000..32cf98cd2fc
--- /dev/null
+++ b/idea/testData/checker/regression/Jet17.jet
@@ -0,0 +1,6 @@
+// JET-17 Do not infer property types by the initializer before the containing scope is ready
+
+class WithC() {
+ val a = 1
+ val b = $a // error here, but must not be
+}
\ No newline at end of file