diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-04-24 17:24:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-24 17:24:45 +0200 |
commit | 39f77f95b859cfaac0a25b74c5ec9a894c01483c (patch) | |
tree | 9833d683879a272a069f8f706b27eeb2c1c0fba9 /modules/gdscript | |
parent | 514fb5fa8a3f0e81a760a46741c123789696c28b (diff) | |
parent | 8dc883378218f85c7d3080e6769fac7a957c5223 (diff) |
Merge pull request #37265 from BigRed-118/mark_assert_safe
Mark assert lines as safe in gdscript
Diffstat (limited to 'modules/gdscript')
-rw-r--r-- | modules/gdscript/gdscript_parser.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 3e0415ee11..c74d8cfbb0 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -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); |