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

if (p_func->body->has_return) {
			gd_function->return_type = _gdtype_from_datatype(p_func->get_datatype(), p_script);
		} else {
			gd_function->return_type = GDScriptDataType();
			gd_function->return_type.has_type = true;
			gd_function->return_type.kind = GDScriptDataType::BUILTIN;
			gd_function->return_type.builtin_type = Variant::NIL;
		}
#ifdef TOOLS_ENABLED
		gd_function->default_arg_values = p_func->default_arg_values;
#endif
	}
	if (!is_implicit_initializer && !is_implicit_ready && !p_for_lambda) {
		p_script->member_functions[func_name] = gd_function;
	}
	memdelete(codegen.generator);
	return gd_function;
}
Error GDScriptCompiler::_parse_setter_getter(GDScript *p_script, const GDScriptParser::ClassNode *p_class, const GDScriptParser::VariableNode *p_variable, bool p_is_setter) {
	Error err = OK;
	GDScriptParser::FunctionNode *function;
	if (p_is_setter) {
		function = p_variable->setter;
	} else {
		function = p_variable->getter;
	}
	_parse_function(err, p_script, p_class, function);
	return err;
}
Error GDScriptCompiler::_populate_class_members(GDScript *p_script, const GDScriptParser::ClassNode *p_class, bool p_keep_state) {