Rename: Constraint search scope of parameter declared in a private member

#KT-9649 Fixed
(cherry picked from commit fa144b0)
This commit is contained in:
Alexey Sedunov
2016-06-22 15:58:23 +03:00
parent 746b8895e2
commit 068a120600
3 changed files with 18 additions and 0 deletions
+1
View File
@@ -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
@@ -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);
}
}
@@ -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<KotlinParameterStub> 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();
}
}