Fix of EA-105681 in KotlinRunLineMarkerContributor
This commit is contained in:
committed by
Mikhail Glukhikh
parent
165707c46c
commit
830b543879
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
|||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
class MainFunctionDetector {
|
class MainFunctionDetector {
|
||||||
private val getFunctionDescriptor: (KtNamedFunction) -> FunctionDescriptor
|
private val getFunctionDescriptor: (KtNamedFunction) -> FunctionDescriptor?
|
||||||
|
|
||||||
/** Assumes that the function declaration is already resolved and the descriptor can be found in the `bindingContext`. */
|
/** Assumes that the function declaration is already resolved and the descriptor can be found in the `bindingContext`. */
|
||||||
constructor(bindingContext: BindingContext) {
|
constructor(bindingContext: BindingContext) {
|
||||||
@@ -38,7 +38,7 @@ class MainFunctionDetector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(functionResolver: (KtNamedFunction) -> FunctionDescriptor) {
|
constructor(functionResolver: (KtNamedFunction) -> FunctionDescriptor?) {
|
||||||
this.getFunctionDescriptor = functionResolver
|
this.getFunctionDescriptor = functionResolver
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,7 +74,8 @@ class MainFunctionDetector {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return isMain(getFunctionDescriptor(function), checkJvmStaticAnnotation)
|
val functionDescriptor = getFunctionDescriptor(function) ?: return false
|
||||||
|
return isMain(functionDescriptor, checkJvmStaticAnnotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getMainFunction(module: ModuleDescriptor): FunctionDescriptor? = getMainFunction(module, module.getPackage(FqName.ROOT))
|
fun getMainFunction(module: ModuleDescriptor): FunctionDescriptor? = getMainFunction(module, module.getPackage(FqName.ROOT))
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||||
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||||
|
|
||||||
|
|
||||||
@@ -32,8 +32,8 @@ class KotlinRunLineMarkerContributor : RunLineMarkerContributor() {
|
|||||||
|
|
||||||
if (function.nameIdentifier != element) return null
|
if (function.nameIdentifier != element) return null
|
||||||
|
|
||||||
val detector = MainFunctionDetector { function ->
|
val detector = MainFunctionDetector { someFunction ->
|
||||||
function.resolveToDescriptor() as FunctionDescriptor
|
someFunction.resolveToDescriptorIfAny() as? FunctionDescriptor
|
||||||
}
|
}
|
||||||
|
|
||||||
if (detector.isMain(function)) {
|
if (detector.isMain(function)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user