diff --git a/ChangeLog.md b/ChangeLog.md index a6bbbd8f763..4115d18d3fc 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -250,6 +250,7 @@ - [`KT-9435`](https://youtrack.jetbrains.com/issue/KT-9435) Process property accesor usages (Java) in comments and string literals - [`KT-9444`](https://youtrack.jetbrains.com/issue/KT-9444) Rename dialog: Allow typing any identifier without backquotes - [`KT-9446`](https://youtrack.jetbrains.com/issue/KT-9446) Copy default parameter values to overriding function which is renamed while its base function is not +- [`KT-9649`](https://youtrack.jetbrains.com/issue/KT-9649) Constraint search scope of parameter declared in a private member - [`KT-10033`](https://youtrack.jetbrains.com/issue/KT-10033) Qualify references to members of enum companions in case of conflict with enum entries - [`KT-10713`](https://youtrack.jetbrains.com/issue/KT-10713) Skip read-only declarations when renaming parameters - [`KT-10687`](https://youtrack.jetbrains.com/issue/KT-10687) Qualify property references to avoid shadowing by parameters diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtFunctionLiteral.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtFunctionLiteral.java index a55cb719664..3e23bb88b1b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtFunctionLiteral.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtFunctionLiteral.java @@ -18,6 +18,8 @@ package org.jetbrains.kotlin.psi; import com.intellij.lang.ASTNode; import com.intellij.psi.PsiElement; +import com.intellij.psi.search.LocalSearchScope; +import com.intellij.psi.search.SearchScope; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.lexer.KtTokens; @@ -84,4 +86,10 @@ public class KtFunctionLiteral extends KtFunctionNotStubbed { public boolean hasBody() { return getBodyExpression() != null; } + + @NotNull + @Override + public SearchScope getUseScope() { + return new LocalSearchScope(this); + } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtParameter.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtParameter.java index 20b8f9cd756..39252ea0d31 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtParameter.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtParameter.java @@ -20,6 +20,7 @@ import com.intellij.lang.ASTNode; import com.intellij.navigation.ItemPresentation; import com.intellij.navigation.ItemPresentationProviders; import com.intellij.psi.PsiElement; +import com.intellij.psi.search.SearchScope; import com.intellij.psi.tree.TokenSet; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; @@ -177,4 +178,12 @@ public class KtParameter extends KtNamedDeclarationStub imp if (!(parent instanceof KtParameterList)) return null; return ((KtParameterList) parent).getOwnerFunction(); } + + @NotNull + @Override + public SearchScope getUseScope() { + KtDeclarationWithBody owner = getOwnerFunction(); + if (owner instanceof KtPrimaryConstructor && hasValOrVar()) return super.getUseScope(); + return owner != null ? owner.getUseScope() : super.getUseScope(); + } }