Fix overly restrictive cast to allow running multiplatform tests for objects

^KT-35480 Fixed
This commit is contained in:
Dmitry Savvinov
2020-01-21 14:29:28 +03:00
parent 77a7ceaa55
commit 56286cd4dc
2 changed files with 3 additions and 4 deletions
@@ -8,10 +8,9 @@ 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.toLightClass
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightMethod
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
@@ -24,6 +23,6 @@ internal fun getTestMethodForKotlinTest(location: Location<*>): PsiMethod? {
internal fun getTestClassForKotlinTest(location: Location<*>): PsiClass? {
val leaf = location.psiElement
val owner = leaf?.getParentOfType<KtDeclaration>(true) as? KtClass ?: return null
val owner = leaf?.getParentOfType<KtDeclaration>(true) as? KtClassOrObject ?: return null
return KtFakeLightClass(owner)
}
@@ -3,7 +3,7 @@ package sample
import kotlin.test.Test
import kotlin.test.assertTrue
object <lineMarker descr="Run Test" settings="Nothing here">Obj</lineMarker> {
object <lineMarker descr="Run Test" settings=" cleanJsBrowserTest jsBrowserTest --tests \"sample.Obj\" cleanJsNodeTest jsNodeTest --tests \"sample.Obj\" cleanJvmTest jvmTest --tests \"sample.Obj\" --continue">Obj</lineMarker> {
@Test
fun <lineMarker descr="Run Test" settings=" cleanJsBrowserTest jsBrowserTest --tests \"sample.Obj.myTest\" cleanJsNodeTest jsNodeTest --tests \"sample.Obj.myTest\" cleanJvmTest jvmTest --tests \"sample.Obj.myTest\" --continue">myTest</lineMarker>() {}
}