### Godot version

Godot 4.0 RC 2

### System information

Windows 11

### Issue description

As the title states you get no autocompletion when statically typing.
Of course the code still works, but it shouldn't be neccessary to cast an object to a type it already is.

### Steps to reproduce

1. Create child class with some functionality
![image](https://user-images.githubusercontent.com/100119945/220173809-0b2b2788-d986-4fa7-815c-444268d09c32.png)

2. Get node in parent class and call childs function
![image](https://user-images.githubusercontent.com/100119945/220174167-5ff3c8e9-863e-4fbd-a3cf-d88d34597b39.png)



### Minimal reproduction project

N/A
if (p_context.base == nullptr) {
		return false;
	}
	const GDScriptParser::GetNodeNode *get_node = nullptr;
	switch (p_subscript->base->type) {
		case GDScriptParser::Node::GET_NODE: {
			get_node = static_cast<GDScriptParser::GetNodeNode *>(p_subscript->base);
		} break;
		case GDScriptParser::Node::IDENTIFIER: {
			const GDScriptParser::IdentifierNode *identifier_node = static_cast<GDScriptParser::IdentifierNode *>(p_subscript->base);
			switch (identifier_node->source) {
				case GDScriptParser::IdentifierNode::Source::MEMBER_VARIABLE: {
					if (p_context.current_class != nullptr) {
						const StringName &member_name = identifier_node->name;
						const GDScriptParser::ClassNode *current_class = p_context.current_class;
						if (current_class->has_member(member_name)) {
							const GDScriptParser::ClassNode::Member &member = current_class->get_member(member_name);
							if (member.type == GDScriptParser::ClassNode::Member::VARIABLE) {
								const GDScriptParser::VariableNode *variable = static_cast<GDScriptParser::VariableNode *>(member.variable);
								if (variable->initializer && variable->initializer->type == GDScriptParser::Node::GET_NODE) {
									get_node = static_cast<GDScriptParser::GetNodeNode *>(variable->initializer);
								}
							}
						}
					}
				} break;
				case GDScriptParser::IdentifierNode::Source::LOCAL_VARIABLE: {