### Godot version

4.0.2

### System information

Ubuntu 22.04.1 LTS

### Issue description

So far I've found these ones:

![Screenshot from 2023-05-10 17-56-42](https://github.com/godotengine/godot/assets/85438892/b161b14a-cb7d-46fe-8398-816bf354a929)
![Screenshot from 2023-05-10 18-01-02](https://github.com/godotengine/godot/assets/85438892/b0fefcfb-4246-4ebb-ae7b-dd798d7a1d63)

But there are likely more like them. They are invalid, at least in the context I encountered them here (at the beginning of a regular line of script)

### Steps to reproduce

Type `Anchor` in the code editor.

### Minimal reproduction project

N/A
if (!p_context.current_suite) {
		return;
	}
	for (int i = 0; i < p_context.current_suite->statements.size(); i++) {
		if (p_context.current_suite->statements[i]->start_line < r_last_return_line) {
			break;
		}
		GDScriptParser::CompletionContext c = p_context;
		switch (p_context.current_suite->statements[i]->type) {
			case GDScriptParser::Node::FOR:
				c.current_suite = static_cast<const GDScriptParser::ForNode *>(p_context.current_suite->statements[i])->loop;
				_find_last_return_in_block(c, r_last_return_line, r_last_returned_value);
				break;
			case GDScriptParser::Node::WHILE:
				c.current_suite = static_cast<const GDScriptParser::WhileNode *>(p_context.current_suite->statements[i])->loop;
				_find_last_return_in_block(c, r_last_return_line, r_last_returned_value);
				break;
			case GDScriptParser::Node::IF: {
				const GDScriptParser::IfNode *_if = static_cast<const GDScriptParser::IfNode *>(p_context.current_suite->statements[i]);
				c.current_suite = _if->true_block;
				_find_last_return_in_block(c, r_last_return_line, r_last_returned_value);
				if (_if->false_block) {
					c.current_suite = _if->false_block;
					_find_last_return_in_block(c, r_last_return_line, r_last_returned_value);
				}
			} break;
			case GDScriptParser::Node::MATCH: {