### Godot version

4.0 Beta 11 to 13

### System information

Windows 10

### Issue description

When trying to upgrade from Beta 10 one of my projects would immediately crash when opening the editor, with no error in the console which also crashed. I managed to isolate it to this enum:

```
enum { # Directions, clockwise, powers of 100, each direction gets 2 digits, allowing 100 terrains
	CENTER = 01,
	NORTH = 0100, # -Z
	NORTH_EAST = 010000,
	EAST = 01000000, # +X
	SOUTH_EAST = 0100000000,
	SOUTH = 010000000000, # +Z
	SOUTH_WEST = 01000000000000,
	WEST = 0100000000000000, # -X
	NORTH_WEST = 010000000000000000,
	ALL = 010101010101010101,
	ALL_CORNERS = NORTH_EAST + SOUTH_EAST + SOUTH_WEST + NORTH_WEST,
}
```

With this last line causing the crash:
`ALL_CORNERS = NORTH_EAST + SOUTH_EAST + SOUTH_WEST + NORTH_WEST,`

This worked in all the betas I've used up to and including Beta 10


### Steps to reproduce

Copy and paste that enum into a script, and save. Simply having a script with this enum will cause the editor to crash, the script doesn't need to be used anywhere.

### Minimal reproduction project

N/A
if (is_static && !base_type.is_meta_type && !(is_self && parser->current_function != nullptr && parser->current_function->is_static)) {
			String caller_type = String(base_type.native_type);
			if (caller_type.is_empty()) {
				caller_type = base_type.to_string();
			}
			parser->push_warning(p_call, GDScriptWarning::STATIC_CALLED_ON_INSTANCE, p_call->function_name, caller_type);
		}
#endif 
		call_type = return_type;
	} else {
		bool found = false;
		
		if (base_type.kind == GDScriptParser::DataType::ENUM && base_type.is_meta_type) {
			push_error(vformat(R"*(Enums only have Dictionary built-in methods. Function "%s()" does not exist for enum "%s".)*", p_call->function_name, base_type.enum_type), p_call->callee);
		} else if (!p_call->is_super && callee_type != GDScriptParser::Node::NONE) { 
			GDScriptParser::IdentifierNode *callee_id;
			if (callee_type == GDScriptParser::Node::IDENTIFIER) {
				callee_id = static_cast<GDScriptParser::IdentifierNode *>(p_call->callee);
			} else {
				
				callee_id = static_cast<GDScriptParser::SubscriptNode *>(p_call->callee)->attribute;
			}
			if (callee_id) {
				reduce_identifier_from_base(callee_id, &base_type);
				GDScriptParser::DataType callee_datatype = callee_id->get_datatype();
				if (callee_datatype.is_set() && !callee_datatype.is_variant()) {
					found = true;
					if (callee_datatype.builtin_type == Variant::CALLABLE) {
						push_error(vformat(R"*(Name "%s" is a Callable. You can call it with "%s.call()" instead.)*", p_call->function_name, p_call->function_name), p_call->callee);
					} else {