summaryrefslogtreecommitdiffstats
path: root/modules/gdscript
diff options
context:
space:
mode:
authoremre0altan <emrealtann77@gmail.com>2024-02-06 13:25:00 +0000
committeremre0altan <emrealtann77@gmail.com>2024-02-11 13:47:12 +0000
commit081fa324fd11e5602b748bf45717d32692a3e7dc (patch)
treefcfd7ab73699c00eb16aa67d24b833b5dbc3d96f /modules/gdscript
parentd3352813ea44447bfbf135efdec23acc4d1d3f89 (diff)
downloadredot-engine-081fa324fd11e5602b748bf45717d32692a3e7dc.tar.gz
set has_type false if it is BUILTIN but Variant::NIL
Diffstat (limited to 'modules/gdscript')
-rw-r--r--modules/gdscript/gdscript_byte_codegen.cpp2
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/match_test_null.gd6
-rw-r--r--modules/gdscript/tests/scripts/runtime/features/match_test_null.out2
3 files changed, 9 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_byte_codegen.cpp b/modules/gdscript/gdscript_byte_codegen.cpp
index 27766115d5..36b157521d 100644
--- a/modules/gdscript/gdscript_byte_codegen.cpp
+++ b/modules/gdscript/gdscript_byte_codegen.cpp
@@ -429,7 +429,7 @@ void GDScriptByteCodeGenerator::set_initial_line(int p_line) {
(m_var.type.has_type && m_var.type.kind == GDScriptDataType::BUILTIN)
#define IS_BUILTIN_TYPE(m_var, m_type) \
- (m_var.type.has_type && m_var.type.kind == GDScriptDataType::BUILTIN && m_var.type.builtin_type == m_type)
+ (m_var.type.has_type && m_var.type.kind == GDScriptDataType::BUILTIN && m_var.type.builtin_type == m_type && m_type != Variant::NIL)
void GDScriptByteCodeGenerator::write_type_adjust(const Address &p_target, Variant::Type p_new_type) {
switch (p_new_type) {
diff --git a/modules/gdscript/tests/scripts/runtime/features/match_test_null.gd b/modules/gdscript/tests/scripts/runtime/features/match_test_null.gd
new file mode 100644
index 0000000000..9bb57b68ee
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/match_test_null.gd
@@ -0,0 +1,6 @@
+func test():
+ match null:
+ null:
+ print('null matched')
+ _:
+ pass
diff --git a/modules/gdscript/tests/scripts/runtime/features/match_test_null.out b/modules/gdscript/tests/scripts/runtime/features/match_test_null.out
new file mode 100644
index 0000000000..7640cf42ab
--- /dev/null
+++ b/modules/gdscript/tests/scripts/runtime/features/match_test_null.out
@@ -0,0 +1,2 @@
+GDTEST_OK
+null matched