### Godot version

3b086aa06

### System information

ArchLinux x11

### Issue description

```gdscript
extends Node

@export_group("My Properties")
@export var number = 3
@export var string = ""

@export_group("Prefixed Properties", "prefix_")
@export var prefix_number = 3
@export var prefix_string = ""

@export_group("", "")
@export var ungrouped_number = 3
```

![image](https://user-images.githubusercontent.com/70787919/214983963-528c415b-745b-47fc-9777-36ebe31a3060.png)


### Steps to reproduce

- create script
- @export_group
- go inspector

### Minimal reproduction project

‮
resolve_function_body(member.variable->getter);
				}
				if (member.variable->setter != nullptr) {
					resolve_function_signature(member.variable->setter);
					if (member.variable->setter->parameters.size() > 0) {
						member.variable->setter->parameters[0]->datatype_specifier = member.variable->datatype_specifier;
						member.variable->setter->parameters[0]->set_datatype(member.get_datatype());
					}
					resolve_function_body(member.variable->setter);
				}
			}
		}
	}
	
	for (int i = 0; i < p_class->members.size(); i++) {
		GDScriptParser::ClassNode::Member member = p_class->members[i];
		if (member.type == GDScriptParser::ClassNode::Member::VARIABLE) {
#ifdef DEBUG_ENABLED
			HashSet<uint32_t> previously_ignored = parser->ignored_warning_codes;
			for (uint32_t ignored_warning : member.function->ignored_warnings) {
				parser->ignored_warning_codes.insert(ignored_warning);
			}
			if (member.variable->usages == 0 && String(member.variable->identifier->name).begins_with("_")) {
				parser->push_warning(member.variable->identifier, GDScriptWarning::UNUSED_PRIVATE_CLASS_VARIABLE, member.variable->identifier->name);
			}
#endif
			if (member.variable->property == GDScriptParser::VariableNode::PROP_SETGET) {
				GDScriptParser::FunctionNode *getter_function = nullptr;
				GDScriptParser::FunctionNode *setter_function = nullptr;
				bool has_valid_getter = false;