### Godot version

v4.0.rc1.official [8843d9ad3]

### System information

Lubuntu

### Issue description

You can't use + or += to mutate typed arrays.

It seems to be not correctly getting the type information from the second operand.

An erudite poster on the discord puts it differently:
> it's more like operator + doesn't retain Array typing
> the syntax for Array Concatenation via operators, but the idea gets across i think


The error you see is:
```Trying to assign an array of type "Array" to a variable of type "Array[int]".```


### Steps to reproduce

```
	var Alice: Array[int] = [1,2,3]
	var Bob: Array[int] = [4,5,6]
	Alice += Bob
```
This will crash with the above error message.

### Minimal reproduction project

[plus_syntax_broken_demo_project.zip](https://github.com/godotengine/godot/files/10694514/plus_syntax_broken_demo_project.zip)

Ref<GDScript> res = GDScriptCache::get_shallow_script(p_preload->resolved_path, err, parser->script_path);
				p_preload->resource = res;
				if (err != OK) {
					push_error(vformat(R"(Could not preload resource script "%s".)", p_preload->resolved_path), p_preload->path);
				}
			} else if (ResourceLoader::get_resource_type(p_preload->resolved_path) == "PackedScene") {
				Error err = OK;
				Ref<PackedScene> res = GDScriptCache::get_packed_scene(p_preload->resolved_path, err, parser->script_path);
				p_preload->resource = res;
				if (err != OK) {
					push_error(vformat(R"(Could not preload resource scene "%s".)", p_preload->resolved_path), p_preload->path);
				}
			} else {
				p_preload->resource = ResourceLoader::load(p_preload->resolved_path);
				if (p_preload->resource.is_null()) {
					push_error(vformat(R"(Could not preload resource file "%s".)", p_preload->resolved_path), p_preload->path);
				}
			}
		}
	}
	p_preload->is_constant = true;
	p_preload->reduced_value = p_preload->resource;
	p_preload->set_datatype(type_from_variant(p_preload->reduced_value, p_preload));
}
void GDScriptAnalyzer::reduce_self(GDScriptParser::SelfNode *p_self) {
	p_self->is_constant = false;
	p_self->set_datatype(type_from_metatype(parser->current_class->get_datatype()));
	mark_lambda_use_self();
}
void GDScriptAnalyzer::reduce_subscript(GDScriptParser::SubscriptNode *p_subscript, bool p_can_be_pseudo_type) {