### Godot version

master (95ce236b7d6a70a06ecc13fb08d48da90ed98430)

### System information

Windows 11, Vulkan Mobile, NVidia RTX 3070 TI

### Issue description

Gdscript is now crashing when a default argument of type array occurs:

```gdscript
func _ready():
	# This works
	test([1, 1, 1])
        
	# This crashes
	test()
	
func test(array := [1, 2, 3]):
	print("array is ", array)
```

### Steps to reproduce

The code snippet above is enough to produce the issue. Bisecting the repository indicates the issue was introduced by https://github.com/godotengine/godot/commit/a1d06749f18c3f47c6443ece2ec625d8ee5f1761.


### Minimal reproduction project

[DefaultArrayCrash.zip](https://github.com/godotengine/godot/files/10357164/DefaultArrayCrash.zip)

gen->start_for(iterator.type, _gdtype_from_datatype(for_n->list->get_datatype(), codegen.script));
				GDScriptCodeGenerator::Address list = _parse_expression(codegen, err, for_n->list);
				if (err) {
					return err;
				}
				gen->write_for_assignment(iterator, list);
				if (list.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
					codegen.generator->pop_temporary();
				}
				gen->write_for();
				err = _parse_block(codegen, for_n->loop);
				if (err) {
					return err;
				}
				gen->write_endfor();
				codegen.end_block();
			} break;
			case GDScriptParser::Node::WHILE: {
				const GDScriptParser::WhileNode *while_n = static_cast<const GDScriptParser::WhileNode *>(s);
				gen->start_while_condition();
				GDScriptCodeGenerator::Address condition = _parse_expression(codegen, err, while_n->condition);
				if (err) {
					return err;
				}
				gen->write_while(condition);
				if (condition.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
					codegen.generator->pop_temporary();
				}
				err = _parse_block(codegen, while_n->loop);
				if (err) {