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

options.push_back("hint_roughness_b");
						options.push_back("hint_roughness_g");
						options.push_back("hint_roughness_gray");
						options.push_back("hint_roughness_normal");
						options.push_back("hint_roughness_r");
						options.push_back("hint_screen_texture");
						options.push_back("hint_normal_roughness_texture");
						options.push_back("hint_depth_texture");
						options.push_back("source_color");
					}
					if (current_uniform_repeat == REPEAT_DEFAULT) {
						options.push_back("repeat_enable");
						options.push_back("repeat_disable");
					}
				}
				for (int i = 0; i < options.size(); i++) {
					ScriptLanguage::CodeCompletionOption option(options[i], ScriptLanguage::CODE_COMPLETION_KIND_PLAIN_TEXT);
					r_options->push_back(option);
				}
			}
			if (!completion_base_array && !current_uniform_instance_index_defined) {
				ScriptLanguage::CodeCompletionOption option("instance_index", ScriptLanguage::CODE_COMPLETION_KIND_PLAIN_TEXT);
				option.insert_text = "instance_index(0)";
				r_options->push_back(option);
			}
		} break;
	}
	return ERR_PARSE_ERROR;
}
String ShaderLanguage::get_error_text() {