Skip to content

Commit 2cbb8d0

Browse files
committed
Find Usages on "override val" in constructor asks about base usages
Also fix long-standing bug with "title" parameter being ignored when displaying messages #KT-17845 Fixed
1 parent 8f38d03 commit 2cbb8d0

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

idea/idea-core/src/org/jetbrains/kotlin/idea/core/util/messages.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import javax.swing.Icon
2525

2626
fun showYesNoCancelDialog(key: String, project: Project, message: String, title: String, icon: Icon, default: Int?): Int {
2727
return if (!ApplicationManager.getApplication().isUnitTestMode) {
28-
Messages.showYesNoCancelDialog(project, message, message, icon)
28+
Messages.showYesNoCancelDialog(project, message, title, icon)
2929
}
3030
else {
3131
callInTestMode(key, default)

idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinFindUsagesHandlerFactory.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import com.intellij.psi.PsiElement
2929
import com.intellij.psi.search.searches.OverridingMethodsSearch
3030
import org.jetbrains.kotlin.asJava.toLightMethods
3131
import org.jetbrains.kotlin.asJava.unwrapped
32-
import org.jetbrains.kotlin.idea.KotlinBundle
3332
import org.jetbrains.kotlin.idea.findUsages.handlers.DelegatingFindMemberUsagesHandler
3433
import org.jetbrains.kotlin.idea.findUsages.handlers.KotlinFindClassUsagesHandler
3534
import org.jetbrains.kotlin.idea.findUsages.handlers.KotlinFindMemberUsagesHandler
@@ -80,6 +79,10 @@ class KotlinFindUsagesHandlerFactory(project: Project) : FindUsagesHandlerFactor
8079

8180
is KtParameter -> {
8281
if (canAsk) {
82+
if (element.hasValOrVar()) {
83+
val declarationsToSearch = checkSuperMethods(element, null, "find usages of")
84+
return handlerForMultiple(element, declarationsToSearch)
85+
}
8386
val function = element.ownerFunction
8487
if (function != null && function.isOverridable()) {
8588
val psiMethod = function.toLightMethods().singleOrNull()

idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -848,7 +848,7 @@ fun checkSuperMethods(
848848
return overriddenElementsToDescriptor.entries.map { entry ->
849849
val (element, descriptor) = entry
850850
val description = when (element) {
851-
is KtNamedFunction, is KtProperty -> formatClassDescriptor(descriptor.containingDeclaration)
851+
is KtNamedFunction, is KtProperty, is KtParameter -> formatClassDescriptor(descriptor.containingDeclaration)
852852
is PsiMethod -> {
853853
val psiClass = element.containingClass ?: error("Invalid element: ${element.getText()}")
854854
formatPsiClass(psiClass, true, false)
@@ -891,7 +891,7 @@ fun checkSuperMethods(
891891
val overriddenElementsToDescriptor = HashMap<PsiElement, CallableDescriptor>()
892892
for (overriddenDescriptor in DescriptorUtils.getAllOverriddenDescriptors(declarationDescriptor)) {
893893
val overriddenDeclaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, overriddenDescriptor) ?: continue
894-
if (overriddenDeclaration is KtNamedFunction || overriddenDeclaration is KtProperty || overriddenDeclaration is PsiMethod) {
894+
if (overriddenDeclaration is KtNamedFunction || overriddenDeclaration is KtProperty || overriddenDeclaration is PsiMethod || overriddenDeclaration is KtParameter) {
895895
overriddenElementsToDescriptor[overriddenDeclaration] = overriddenDescriptor
896896
}
897897
}

0 commit comments

Comments
 (0)