Merge pull request #37265 from BigRed-118/mark_assert_safe

Mark assert lines as safe in gdscript
This commit is contained in:
Rémi Verschelde 2020-04-24 17:24:45 +02:00 committed by GitHub
commit 39f77f95b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2801,6 +2801,7 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
return;
}
_mark_line_as_safe(line);
NewLineNode *nl2 = alloc_node<NewLineNode>();
nl2->line = line;
p_block->statements.push_back(nl2);
@ -3314,6 +3315,8 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
return;
}
int assert_line = tokenizer->get_token_line();
tokenizer->advance();
Vector<Node *> args;
@ -3327,8 +3330,14 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
return;
}
#ifdef DEBUG_ENABLED
// Mark as safe, let type check mark as unsafe if needed
_mark_line_as_safe(assert_line);
_reduce_node_type(args[0]);
#endif
AssertNode *an = alloc_node<AssertNode>();
an->condition = _reduce_expression(args[0], p_static);
an->line = assert_line;
if (args.size() == 2) {
an->message = _reduce_expression(args[1], p_static);