### 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)

set_chain.push_front({ subscript_elem->is_attribute, prev_base, key, name }); 
					prev_base = value;
				}
				
				GDScriptCodeGenerator::Address assigned = _parse_expression(codegen, r_error, assignment->assigned_value);
				if (r_error) {
					return GDScriptCodeGenerator::Address();
				}
				
				GDScriptCodeGenerator::Address key;
				StringName name;
				if (subscript->is_attribute) {
					name = subscript->attribute->name;
				} else {
					key = _parse_expression(codegen, r_error, subscript->index);
					if (r_error) {
						return GDScriptCodeGenerator::Address();
					}
				}
				
				if (assignment->operation != GDScriptParser::AssignmentNode::OP_NONE) {
					GDScriptCodeGenerator::Address op_result = codegen.add_temporary(_gdtype_from_datatype(assignment->get_datatype(), codegen.script));
					GDScriptCodeGenerator::Address value = codegen.add_temporary(_gdtype_from_datatype(subscript->get_datatype(), codegen.script));
					if (subscript->is_attribute) {
						gen->write_get_named(value, name, prev_base);
					} else {
						gen->write_get(value, key, prev_base);
					}
					gen->write_binary_operator(op_result, assignment->variant_op, value, assigned);