Disallow assignment to expressions

Fixes #6824

(cherry picked from commits 0b077162a3
and dcc4ee21c1)
This commit is contained in:
Bojidar Marinov 2016-12-29 12:31:19 +02:00 committed by Rémi Verschelde
parent 6940830627
commit 4c9c43735a

View file

@ -1457,6 +1457,15 @@ GDParser::Node* GDParser::_reduce_expression(Node *p_node,bool p_to_const) {
return op;
}
if (op->arguments[0]->type==Node::TYPE_OPERATOR) {
OperatorNode *on = static_cast<OperatorNode*>(op->arguments[0]);
if (on->op != OperatorNode::OP_INDEX && on->op != OperatorNode::OP_INDEX_NAMED) {
_set_error("Can't assign to an expression",tokenizer->get_token_line()-1);
error_line=op->line;
return op;
}
}
} break;
default: { break; }
}