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())
}
}