Commit b0f0b2c4 authored by Konstantin Aleev's avatar Konstantin Aleev
Browse files

cleanup: rename method and clarify javadoc

(cherry picked from commit d585ccb5) IDEA-CR-34534
parent fbbc3ec5
No related merge requests found
Showing with 14 additions and 8 deletions
+14 -8
......@@ -210,14 +210,20 @@ fun UElement.asRecursiveLogString(render: (UElement) -> String = { it.asLogStrin
* or companion object's containing class if the given method is main method annotated with [kotlin.jvm.JvmStatic] in companion object,
* otherwise *null*.
*/
fun findMainClass(mainMethod: UMethod): PsiClass? {
val psiMethod = mainMethod.javaPsi
if ("main" != psiMethod.name) return null
var mainClassCandidate = psiMethod.containingClass ?: return null
if (PsiMethodUtil.isMainMethod(psiMethod)) return mainClassCandidate
fun getMainMethodClass(uMainMethod: UMethod): PsiClass? {
if ("main" != uMainMethod.name) return null
val containingClass = uMainMethod.uastParent as? UClass ?: return null
val mainMethod = uMainMethod.javaPsi
if (PsiMethodUtil.isMainMethod(mainMethod)) return containingClass.javaPsi
// Check for @JvmStatic main method in companion object
mainClassCandidate = mainClassCandidate.containingClass ?: return null
val mainInClass = PsiMethodUtil.findMainInClass(mainClassCandidate)
return if (psiMethod.manager.areElementsEquivalent(psiMethod, mainInClass)) mainClassCandidate else null
val parentClassForCompanionObject = (containingClass.uastParent as? UClass)?.javaPsi ?: return null
val mainInClass = PsiMethodUtil.findMainInClass(parentClassForCompanionObject)
if (mainMethod.manager.areElementsEquivalent(mainMethod, mainInClass)) {
return parentClassForCompanionObject
}
return null
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment