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