### Godot version

4.0.3

### System information

Win7

### Issue description

![image](https://github.com/godotengine/godot/assets/28286958/abec9d3c-e078-424c-9430-d9fe8897aad6)


### Steps to reproduce

1. Create shader
2. Add uint with hex, e.g. 0xffffu

### Minimal reproduction project

N/A
}
			String return_struct_name = String(b->parent_function->return_struct_name);
			String array_size_string;
			if (b->parent_function->return_array_size > 0) {
				array_size_string = "[" + itos(b->parent_function->return_array_size) + "]";
			}
			ControlFlowNode *flow = alloc_node<ControlFlowNode>();
			flow->flow_op = FLOW_OP_RETURN;
			pos = _get_tkpos();
			tk = _get_token();
			if (tk.type == TK_SEMICOLON) {
				
				if (b->parent_function->return_type != TYPE_VOID) {
					_set_error(vformat(RTR("Expected '%s' with an expression of type '%s'."), "return", (!return_struct_name.is_empty() ? return_struct_name : get_datatype_name(b->parent_function->return_type)) + array_size_string));
					return ERR_PARSE_ERROR;
				}
			} else {
				_set_tkpos(pos); 
#ifdef DEBUG_ENABLED
				if (b->parent_function->return_type == DataType::TYPE_BOOL) {
					keyword_completion_context = CF_BOOLEAN;
				}
#endif 
				Node *expr = _parse_and_reduce_expression(p_block, p_function_info);
				if (!expr) {
					return ERR_PARSE_ERROR;
				}
				if (b->parent_function->return_type != expr->get_datatype() || b->parent_function->return_array_size != expr->get_array_size() || return_struct_name != expr->get_datatype_name()) {
					_set_error(vformat(RTR("Expected return with an expression of type '%s'."), (!return_struct_name.is_empty() ? return_struct_name : get_datatype_name(b->parent_function->return_type)) + array_size_string));
					return ERR_PARSE_ERROR;