fun returnType()

in gdscript/src/main/kotlin/gdscript/psi/utils/GdCommonUtil.kt [60:92]


    fun returnType(element: PsiElement?): String {
        return when(element) {
            is GdConstDeclTl -> element.returnType
            is GdClassVarDeclTl -> element.returnType
            is GdMethodDeclTl -> element.returnType
            is GdFuncDeclEx -> element.returnType
            is GdParam -> element.returnType
            is GdArgExpr -> element.returnType
            is GdVarDeclSt -> element.returnType
            is GdConstDeclSt -> element.returnType
            is GdExpr -> element.returnType
            is GdTypedVal -> element.returnType
            is GdClassNaming -> element.classname
            is GdClassDeclTl -> element.classNameNmi?.classId.orEmpty()
            is GdEnumDeclTl -> "EnumDictionary"
            is GdEnumValue -> GdKeywords.INT
            is GdSignalDeclTl -> "Signal"
            is GdForSt -> {
                if (element.typed != null) {
                    return element.typed?.text?.trim(':', ' ') ?: ""
                }

                val forExpr = element.expr?.returnType ?: ""
                if (forExpr.startsWith("Array")) {
                    return GdOperand.getReturnType(forExpr, GdKeywords.INT, "[]", element.project)
                } else {
                    return forExpr
                }
            }
            null -> return ""
            else -> throw NotImplementedError(element.toString())
        }
    }