### Godot version

v4.0.beta14.official [28a24639c]

### System information

MacOS 12.6.2

### Issue description

Beta 14 throws an error for custom `@icon`, e.g.
```
class_name StateMachine extends Node

@icon("res://assets/icons/state_machine.svg")
```
> Annotation "`@icon`" is not allowed in this level.

In beta 13 and before that worked fine.

### Steps to reproduce

1. Add a custom `@icon` in a custom node script.
2. Error message: Annotation "`@icon`" is not allowed in this level.

There are possibly other errors because a `class_name` node is now not recognized if extended by other classes, but they should resolve if `@icon` is removed.

### Minimal reproduction project

N/A
if (local.type != SuiteNode::Local::UNDEFINED) {
					String name;
					if (local.type == SuiteNode::Local::CONSTANT) {
						name = "constant";
					} else {
						name = "variable";
					}
					push_error(vformat(R"(There is already a %s named "%s" declared in this scope.)", name, constant->identifier->name), constant->identifier);
				}
				current_suite->add_local(constant, current_function);
				break;
			}
			default:
				break;
		}
	} while ((multiline || previous.type == GDScriptTokenizer::Token::SEMICOLON) && !check(GDScriptTokenizer::Token::DEDENT) && !lambda_ended && !is_at_end());
	complete_extents(suite);
	if (multiline) {
		if (!lambda_ended) {
			consume(GDScriptTokenizer::Token::DEDENT, vformat(R"(Missing unindent at the end of %s.)", p_context));
		} else {
			match(GDScriptTokenizer::Token::DEDENT);
		}
	} else if (previous.type == GDScriptTokenizer::Token::SEMICOLON) {
		consume(GDScriptTokenizer::Token::NEWLINE, vformat(R"(Expected newline after ";" at the end of %s.)", p_context));
	}
	if (p_for_lambda) {
		lambda_ended = true;
	}
	current_suite = suite->parent_block;