Find Usages: Fix exception in the search of class with default parameters in primary constructor
This commit is contained in:
@@ -43,6 +43,7 @@ import com.intellij.find.findUsages.JavaFindUsagesHandlerFactory
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch
|
||||
import com.intellij.util.CommonProcessors
|
||||
import org.jetbrains.kotlin.asJava.KotlinLightMethod
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.processDelegationCallConstructorUsages
|
||||
|
||||
@@ -93,6 +94,7 @@ public class KotlinFindClassUsagesHandler(
|
||||
if (kotlinOptions.searchConstructorUsages) {
|
||||
val constructors = classOrObject.toLightClass()?.getConstructors() ?: PsiMethod.EMPTY_ARRAY
|
||||
for (constructor in constructors) {
|
||||
if (constructor !is KotlinLightMethod) continue
|
||||
constructor.processDelegationCallConstructorUsages(constructor.getUseScope()) {
|
||||
it.getCalleeExpression()?.getReference()?.let { KotlinFindUsagesHandler.processUsage(uniqueProcessor, it) }
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// PSI_ELEMENT: org.jetbrains.kotlin.psi.JetClass
|
||||
// OPTIONS: usages, constructorUsages
|
||||
class <caret>A(a: Int = 1)
|
||||
|
||||
fun test() {
|
||||
A(0)
|
||||
A()
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
New instance creation (6: 5) A(0)
|
||||
New instance creation (7: 5) A()
|
||||
@@ -527,6 +527,12 @@ public class JetFindUsagesTestGenerated extends AbstractJetFindUsagesTest {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/findClassUsages/kotlinTraitDerivedTraits.0.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("primaryConstructorWithDefaultParams.0.kt")
|
||||
public void testPrimaryConstructorWithDefaultParams() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/findClassUsages/primaryConstructorWithDefaultParams.0.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/findUsages/kotlin/findFunctionUsages")
|
||||
|
||||
Reference in New Issue
Block a user