diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-01-22 20:47:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-22 20:47:52 +0100 |
commit | 36e11d1c34e595aa99f90cf3de2dfa1260c81e2b (patch) | |
tree | 0501cf3e930b4e57aabd106b33a578ffc586443c /modules/gdscript | |
parent | 2aa866fa7055ecb04eec11e436095a30808890dd (diff) | |
parent | badabdf8b993f7fbc1d9d824b3bf592651f0dee3 (diff) |
Merge pull request #35412 from DaividFrank/check_overriding_self
Disabled re-assigning 'self'
Diffstat (limited to 'modules/gdscript')
-rw-r--r-- | modules/gdscript/gdscript_parser.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index aec7110ee5..d125da5b79 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -1868,6 +1868,10 @@ GDScriptParser::Node *GDScriptParser::_reduce_expression(Node *p_node, bool p_to _set_error("Can't assign to constant", tokenizer->get_token_line() - 1); error_line = op->line; return op; + } else if (op->arguments[0]->type == Node::TYPE_SELF) { + _set_error("Can't assign to self.", op->line); + error_line = op->line; + return op; } if (op->arguments[0]->type == Node::TYPE_OPERATOR) { @@ -6290,6 +6294,7 @@ GDScriptParser::DataType GDScriptParser::_reduce_node_type(Node *p_node) { node_type.has_type = true; node_type.kind = DataType::CLASS; node_type.class_type = current_class; + node_type.is_constant = true; } break; case Node::TYPE_IDENTIFIER: { IdentifierNode *id = static_cast<IdentifierNode *>(p_node); |