diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java index 3228d0f9e32..d54ddbe6179 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java @@ -197,8 +197,9 @@ public class JetPsiUtil { firstPart = getFQName((JetNamedDeclaration) parent); } else if (namedDeclaration instanceof JetParameter) { - if (((JetParameter) namedDeclaration).getValOrVarNode() != null && parent != null && parent.getParent() instanceof JetClassOrObject) { - firstPart = getFQName((JetClassOrObject) parent.getParent()); + JetClass constructorClass = getClassIfParameterIsProperty((JetParameter) namedDeclaration); + if (constructorClass != null) { + firstPart = getFQName(constructorClass); } } else if (parent instanceof JetObjectDeclaration) { @@ -574,6 +575,18 @@ public class JetPsiUtil { } } + @Nullable + public static JetClass getClassIfParameterIsProperty(@NotNull JetParameter jetParameter) { + if (jetParameter.getValOrVarNode() != null) { + PsiElement parent = jetParameter.getParent(); + if (parent instanceof JetParameterList && parent.getParent() instanceof JetClass) { + return (JetClass) parent.getParent(); + } + } + + return null; + } + @Nullable private static IElementType getOperation(@NotNull JetExpression expression) { if (expression instanceof JetQualifiedExpression) { diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java index 7ef41f7d4c3..6fd300653e8 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/LightClassUtil.java @@ -196,8 +196,11 @@ public class LightClassUtil { @Nullable private static PsiClass getWrappingClass(@NotNull JetDeclaration declaration) { - if (declaration instanceof JetParameter && declaration.getParent().getParent() instanceof JetClass) { - return getPsiClass((JetClassOrObject) declaration.getParent().getParent()); + if (declaration instanceof JetParameter) { + JetClass constructorClass = JetPsiUtil.getClassIfParameterIsProperty((JetParameter) declaration); + if (constructorClass != null) { + return getPsiClass(constructorClass); + } } if (declaration instanceof JetPropertyAccessor) { diff --git a/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java b/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java index 4b5efb62853..a1268443475 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java @@ -143,12 +143,10 @@ public class JetIconProvider extends IconProvider { } if (psiElement instanceof JetParameter) { JetParameter parameter = (JetParameter) psiElement; - if (parameter.getValOrVarNode() != null) { - JetParameterList parameterList = PsiTreeUtil.getParentOfType(psiElement, JetParameterList.class); - if (parameterList != null && parameterList.getParent() instanceof JetClass) { - return parameter.isMutable() ? JetIcons.FIELD_VAR : JetIcons.FIELD_VAL; - } + if (JetPsiUtil.getClassIfParameterIsProperty(parameter) != null) { + return parameter.isMutable() ? JetIcons.FIELD_VAR : JetIcons.FIELD_VAL; } + return JetIcons.PARAMETER; } if (psiElement instanceof JetProperty) { diff --git a/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java b/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java index bbceb76d7ca..534be277f50 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java +++ b/idea/src/org/jetbrains/jet/plugin/search/KotlinDefinitionsSearcher.java @@ -48,7 +48,7 @@ public class KotlinDefinitionsSearcher extends QueryExecutorBase