Fix empty run actions in context menu for non-JVM test results.
Issue #KT-36910 Fixed Issue #KT-36909 Fixed
This commit is contained in:
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.run
|
||||
import com.intellij.execution.Location
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiMethod
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightMethod
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
@@ -16,13 +17,19 @@ import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||
|
||||
internal fun getTestMethodForKotlinTest(location: Location<*>): PsiMethod? {
|
||||
val leaf = location.psiElement
|
||||
val leaf = when (val psi = location.psiElement) {
|
||||
is KtLightElement<*, *> -> psi.kotlinOrigin
|
||||
else -> psi
|
||||
}
|
||||
val function = leaf?.getParentOfType<KtNamedFunction>(false) ?: return null
|
||||
return KtFakeLightMethod.get(function)
|
||||
}
|
||||
|
||||
internal fun getTestClassForKotlinTest(location: Location<*>): PsiClass? {
|
||||
val leaf = location.psiElement
|
||||
val owner = leaf?.getParentOfType<KtDeclaration>(true) as? KtClassOrObject ?: return null
|
||||
val leaf = when (val psi = location.psiElement) {
|
||||
is KtLightElement<*, *> -> psi.kotlinOrigin
|
||||
else -> psi
|
||||
}
|
||||
val owner = leaf?.getParentOfType<KtDeclaration>(false) as? KtClassOrObject ?: return null
|
||||
return KtFakeLightClass(owner)
|
||||
}
|
||||
Reference in New Issue
Block a user