Jelajahi Sumber

Merge pull request #42607 from Dragoncraft89/type_checks

Raise error if Resource is of wrong type as function argument
Rémi Verschelde 4 tahun lalu
induk
melakukan
5c5cfaabf2
1 mengubah file dengan 12 tambahan dan 0 penghapusan
  1. 12 0
      core/variant/binder_common.h

+ 12 - 0
core/variant/binder_common.h

@@ -122,6 +122,18 @@ struct VariantObjectClassChecker {
 	}
 };
 
+template <typename T>
+class Ref;
+
+template <typename T>
+struct VariantObjectClassChecker<const Ref<T> &> {
+	static _FORCE_INLINE_ bool check(const Variant &p_variant) {
+		Object *obj = p_variant;
+		const Ref<T> node = p_variant;
+		return node.ptr() || !obj;
+	}
+};
+
 template <>
 struct VariantObjectClassChecker<Node *> {
 	static _FORCE_INLINE_ bool check(const Variant &p_variant) {