### Godot version

v4.1.dev.custom_build.a7276f1ce

### System information

Win10, AMD 2600, GeForce GTX 1060, Vulkan API 1.3.205

### Issue description

I can't get correct color data from an array of source_color type.
The color data is saved as **Color** in the file:
`shader_parameter/palette = [Color (1, 0, 0, 1), Color (0, 1, 0, 1), Color (0, 0, 1, 1)]`
Shouldn't it be saved as PackedColorArray?


### Steps to reproduce

1.Declare an array of source_color type.
2.Set colors.

### Minimal reproduction project

[shadertest.zip](https://github.com/godotengine/godot/files/11246504/shadertest.zip)

}
					decl.size = var.array_size;
					array_size = var.array_size;
					tk = _get_token();
				}
#ifdef DEBUG_ENABLED
				if (var.type == DataType::TYPE_BOOL) {
					keyword_completion_context = CF_BOOLEAN;
				}
#endif 
				if (var.array_size > 0 || unknown_size) {
					bool full_def = false;
					if (tk.type == TK_OP_ASSIGN) {
						TkPos prev_pos = _get_tkpos();
						tk = _get_token();
						if (tk.type == TK_IDENTIFIER) { 
							_set_tkpos(prev_pos);
							Node *n = _parse_and_reduce_expression(p_block, p_function_info);
							if (!n) {
								_set_error(RTR("Expected array initializer."));
								return ERR_PARSE_ERROR;
							} else {
								if (unknown_size) {
									decl.size = n->get_array_size();
									var.array_size = n->get_array_size();
								}
								if (!_compare_datatypes(var.type, var.struct_name, var.array_size, n->get_datatype(), n->get_datatype_name(), n->get_array_size())) {
									return ERR_PARSE_ERROR;
								}
								decl.single_expression = true;