diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-23 22:18:55 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-23 22:18:55 +0100 |
commit | 77666286b79cc208b2e5b1712c4f4c369406ebfc (patch) | |
tree | 25987b6311f43d60b775582928303c1e4a0f46c0 /modules | |
parent | 4582ee1a0f3447531f8bf65d7e7d74fff7273b40 (diff) | |
parent | 081fa324fd11e5602b748bf45717d32692a3e7dc (diff) | |
download | redot-engine-77666286b79cc208b2e5b1712c4f4c369406ebfc.tar.gz |
Merge pull request #88020 from emre0altan/match-null-crashes-GDScript-compiler
GDScript: Set `has_type` false if it is `BUILTIN` but `Variant::NIL`
Diffstat (limited to 'modules')
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 |