### Godot version

v4.0.3.stable.official [5222a99f5]

### System information

Godot v4.0.3.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1080 (NVIDIA; 31.0.15.1694) - Intel(R) Core(TM) i5-10600KF CPU @ 4.10GHz (12 Threads)

### Issue description

There is no way to set the filter or repeat mode of a sampler2D array, trying to do so using shader hints `filter_nearest`/`filter_linear` or `repeat_enable`/`repeat_disable` results in an error:
`error(3): This hint is not supported for uniform arrays.`

Note: not a duplicate of #62472, which applies to `sampler2DArray`s, but not arrays of `sampler2D`s

### Steps to reproduce

```
shader_type spatial;

uniform sampler2D[8] textures : source_color, filter_nearest;
```

### Minimal reproduction project

N/A
for (int i = expr_pos - 1; i >= next_op; i--) {
				OperatorNode *op = alloc_node<OperatorNode>();
				op->op = expression[i].op;
				if ((op->op == OP_INCREMENT || op->op == OP_DECREMENT) && !_validate_assign(expression[i + 1].node, p_function_info)) {
					_set_error(RTR("Invalid use of increment/decrement operator in a constant expression."));
					return nullptr;
				}
				op->arguments.push_back(expression[i + 1].node);
				expression.write[i].is_op = false;
				expression.write[i].node = op;
				if (!_validate_operator(op, &op->return_cache, &op->return_array_size)) {
					String at;
					for (int j = 0; j < op->arguments.size(); j++) {
						if (j > 0) {
							at += ", ";
						}
						at += get_datatype_name(op->arguments[j]->get_datatype());
						if (!op->arguments[j]->is_indexed() && op->arguments[j]->get_array_size() > 0) {
							at += "[";
							at += itos(op->arguments[j]->get_array_size());
							at += "]";
						}
					}
					_set_error(vformat(RTR("Invalid arguments to unary operator '%s': %s."), get_operator_text(op->op), at));
					return nullptr;
				}
				expression.remove_at(i + 1);
			}
		} else if (is_ternary) {