Merge pull request #88020 from emre0altan/match-null-crashes-GDScript-compiler

GDScript: Set `has_type` false if it is `BUILTIN` but `Variant::NIL`
This commit is contained in:
Rémi Verschelde 2024-02-23 22:18:55 +01:00
commit 77666286b7
No known key found for this signature in database
GPG key ID: C3336907360768E1
3 changed files with 9 additions and 1 deletions

View file

@ -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) {

View file

@ -0,0 +1,6 @@
func test():
match null:
null:
print('null matched')
_:
pass

View file

@ -0,0 +1,2 @@
GDTEST_OK
null matched