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

if (tk.type == TK_BRACKET_OPEN) {
							Error error = _parse_array_size(nullptr, constants, false, nullptr, &constant.array_size, &unknown_size);
							if (error != OK) {
								return error;
							}
							tk = _get_token();
						}
						if (tk.type == TK_OP_ASSIGN) {
							if (!is_constant) {
								_set_error(vformat(RTR("Global non-constant variables are not supported. Expected '%s' keyword before constant definition."), "const"));
								return ERR_PARSE_ERROR;
							}
							if (constant.array_size > 0 || unknown_size) {
								bool full_def = false;
								VariableDeclarationNode::Declaration decl;
								decl.name = name;
								decl.size = constant.array_size;
								tk = _get_token();
								if (tk.type != TK_CURLY_BRACKET_OPEN) {
									if (unknown_size) {
										_set_expected_error("{");
										return ERR_PARSE_ERROR;
									}
									full_def = true;
									DataPrecision precision2 = PRECISION_DEFAULT;
									if (is_token_precision(tk.type)) {
										precision2 = get_token_precision(tk.type);
										tk = _get_token();
										if (!is_token_nonvoid_datatype(tk.type)) {
											_set_error(RTR("Expected data type after precision modifier."));