From 841d07f1aac0afb82a72e6424f5a82adb70ce5c7 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 13 May 2015 14:23:00 +0300 Subject: [PATCH] More correct fix of getEnclosingElementForLocalDeclaration( --- .../frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java index a6c14859d77..1d1df588374 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiUtil.java @@ -800,7 +800,13 @@ public class JetPsiUtil { } else if (declaration instanceof JetParameter) { PsiElement parent = declaration.getParent(); - if (skipParameters && parent != null && parent.getParent() instanceof JetNamedFunction) { + + // val/var parameter of primary constructor should not be considered as local + if (((JetParameter) declaration).getValOrVarNode() != null && parent != null && parent.getParent() instanceof JetPrimaryConstructor) { + return null; + } + + else if (skipParameters && parent != null && parent.getParent() instanceof JetNamedFunction) { declaration = (JetNamedFunction) parent.getParent(); } }