override fun enterMethod_declaration()

in plugin-unity-server/src/main/kotlin/jetbrains/buildServer/unity/fetchers/UnityStaticMethodNamesListener.kt [14:32]


    override fun enterMethod_declaration(method: CSharpParser.Method_declarationContext) {
        method.formal_parameter_list()?.let {
            if (!it.isEmpty) return
        }

        val commonMember = method.parent as CSharpParser.Common_member_declarationContext
        if (commonMember.children?.firstOrNull()?.text != "void") return

        val classMember = commonMember.parent as CSharpParser.Class_member_declarationContext
        val modifiers = classMember.all_member_modifiers().all_member_modifier().flatMap { context ->
            context.children.map { it.text }
        }

        if (!modifiers.any { METHOD_REQUIRED.contains(it) } || modifiers.any { METHOD_EXCLUDE.contains(it) }) {
            return
        }

        names += getMethodReference(classMember, method) to getDescription(classMember)
    }