### Godot version

4.0.beta10

### System information

Windows 11

### Issue description
UPDATE: This problem only occurs when the source code contains inner classes

Before 4.0.Beta9, I could get a GDScript instance by `GDScript.new()` and then set the `source_code` property and then `reload()`, but now it throws an error 
```
USER SCRIPT ERROR: Parse Error: Could not find script "".
   at: GDScript::reload (built-in:1644)
```
In my software, I use the above method when the user modifies the code text, and then read the godot log to implement real-time error checking of the custom user script editor. But now this functionality is completely broken

### Steps to reproduce

1. Create a GDScript instance by `GDScript.new()`
2. set the `source_code` property and then `reload()`

### Minimal reproduction project

N/A
clear_data->functions.insert(implicit_initializer);
		implicit_initializer = nullptr;
	}
	if (implicit_ready) {
		clear_data->functions.insert(implicit_ready);
		implicit_ready = nullptr;
	}
	_save_orphaned_subclasses(clear_data);
#ifdef TOOLS_ENABLED
	
	if (_owner) {
		_clear_doc();
	}
#endif
	
	if (is_root) {
		
		for (GDScriptFunction *E : clear_data->functions) {
			memdelete(E);
		}
		for (Ref<Script> &E : clear_data->scripts) {
			Ref<GDScript> gdscr = E;
			if (gdscr.is_valid()) {
				GDScriptCache::remove_script(gdscr->get_path());
			}
		}
		clear_data->clear();
	}
}
GDScript::~GDScript() {