### Godot version

v4.1.1.stable.official [bd6af8e0e]

### System information

Windows 10

### Issue description

As said in the Title Custom Class Documentation a Function cannot return 'Variant' and will instead be shown to return void, even though Built-in Classes are shown to return 'Variant', an example would be 'Array'
![image](https://github.com/godotengine/godot/assets/34311843/fb8ad532-c37a-43c0-a95f-d70af7ea6894)
![image](https://github.com/godotengine/godot/assets/34311843/3cc1e07b-02e1-4f33-bc98-0fa016b4d864)

### Steps to reproduce

```gdscript
extends Node
class_name CustomClass

func VariantFunction() -> Variant:
	return 10
``` 
Now when checking the Generated Documentation it will appear like: `void VariantFunction()`

### Minimal reproduction project

N/A
const GDP::ClassNode *curr_class = &p_class;
	if (!curr_class->identifier) { 
		return _get_script_path(curr_class->fqcn);
	}
	String full_name = curr_class->identifier->name;
	while (curr_class->outer) {
		curr_class = curr_class->outer;
		if (!curr_class->identifier) { 
			return vformat("%s.%s", _get_script_path(curr_class->fqcn), full_name);
		}
		full_name = vformat("%s.%s", curr_class->identifier->name, full_name);
	}
	return full_name;
}
static PropertyInfo _property_info_from_datatype(const GDType &p_type) {
	PropertyInfo pi;
	pi.type = p_type.builtin_type;
	if (p_type.kind == GDType::CLASS) {
		pi.class_name = _get_class_name(*p_type.class_type);
	} else if (p_type.kind == GDType::ENUM && p_type.enum_type != StringName()) {
		pi.type = Variant::INT; 
		pi.usage |= PROPERTY_USAGE_CLASS_IS_ENUM;
		
		pi.class_name = String(p_type.native_type).replace("::", ".");
	} else if (p_type.kind == GDType::NATIVE) {
		pi.class_name = p_type.native_type;
	}
	return pi;
}
void GDScriptDocGen::generate_docs(GDScript *p_script, const GDP::ClassNode *p_class) {