diff options
author | Ricardo Buring <ricardo.buring@gmail.com> | 2023-12-12 18:55:31 +0100 |
---|---|---|
committer | Ricardo Buring <ricardo.buring@gmail.com> | 2023-12-12 18:55:31 +0100 |
commit | 82afe58aca533c0ec95c3db0629a287700c48b30 (patch) | |
tree | 76119a606e4f525e0108d88955e5b049ab14fcfa /core/extension/extension_api_dump.cpp | |
parent | 84692c6252438393999c427bf7f5d35b9c43926c (diff) | |
download | redot-engine-82afe58aca533c0ec95c3db0629a287700c48b30.tar.gz |
Fix operator documentation in GDExtension API dump with docs
The type of the right operand is now taken into account.
Diffstat (limited to 'core/extension/extension_api_dump.cpp')
-rw-r--r-- | core/extension/extension_api_dump.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/extension/extension_api_dump.cpp b/core/extension/extension_api_dump.cpp index f3e988633c..543dabfb16 100644 --- a/core/extension/extension_api_dump.cpp +++ b/core/extension/extension_api_dump.cpp @@ -742,14 +742,19 @@ Dictionary GDExtensionAPIDump::generate_extension_api(bool p_include_docs) { Dictionary d2; String operator_name = Variant::get_operator_name(Variant::Operator(k)); d2["name"] = operator_name; - if (k != Variant::OP_NEGATE && k != Variant::OP_POSITIVE && k != Variant::OP_NOT && k != Variant::OP_BIT_NEGATE) { - d2["right_type"] = get_builtin_or_variant_type_name(Variant::Type(j)); + + String right_type_name = get_builtin_or_variant_type_name(Variant::Type(j)); + bool is_unary = k == Variant::OP_NEGATE || k == Variant::OP_POSITIVE || k == Variant::OP_NOT || k == Variant::OP_BIT_NEGATE; + if (!is_unary) { + d2["right_type"] = right_type_name; } + d2["return_type"] = get_builtin_or_variant_type_name(Variant::get_operator_return_type(Variant::Operator(k), type, Variant::Type(j))); if (p_include_docs && builtin_doc != nullptr) { for (const DocData::MethodDoc &operator_doc : builtin_doc->operators) { - if (operator_doc.name == "operator " + operator_name) { + if (operator_doc.name == "operator " + operator_name && + (is_unary || operator_doc.arguments[0].type == right_type_name)) { d2["description"] = fix_doc_description(operator_doc.description); break; } |