### 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 (include_positions.size() == 1) {
						return _make_token(TK_ERROR, "Invalid include exit hint @@< without matching enter hint.");
					}
					char_idx += 2;
					include_positions.resize(include_positions.size() - 1); 
					tk_line = include_positions[include_positions.size() - 1].line - 1; 
				} else {
					return _make_token(TK_ERROR, "Invalid include enter/exit hint token (@@> and @@<)");
				}
			} break;
			default: {
				char_idx--; 
				if (is_digit(GETCHAR(0)) || (GETCHAR(0) == '.' && is_digit(GETCHAR(1)))) {
					
					bool hexa_found = false;
					bool period_found = false;
					bool exponent_found = false;
					bool float_suffix_found = false;
					bool uint_suffix_found = false;
					bool end_suffix_found = false;
					enum {
						CASE_ALL,
						CASE_HEXA_PERIOD,
						CASE_EXPONENT,
						CASE_SIGN_AFTER_EXPONENT,
						CASE_NONE,
						CASE_MAX,
					} lut_case = CASE_ALL;
					static bool suffix_lut[CASE_MAX][127];
					if (!is_const_suffix_lut_initialized) {