mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
GDScript: add an optional message parameter to assert()
Before this patch, assert() only took the condition to assert on: assert(item_data) Now, it can optionally take a string that will be printed upon failure: assert(item_data, item_name + " has no item data in ItemDatabase") This makes it easier to immediately see what the issue is by being able to write informative failure messages. Thanks to @wiped1 for sharing their patch, upon which this is based. Closes #17082
This commit is contained in:
parent
750f8d4926
commit
aa8e3e7b0f
4 changed files with 50 additions and 11 deletions
|
@ -1520,8 +1520,16 @@ Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::Blo
|
|||
if (ret2 < 0)
|
||||
return ERR_PARSE_ERROR;
|
||||
|
||||
int message_ret = 0;
|
||||
if (as->message) {
|
||||
message_ret = _parse_expression(codegen, as->message, p_stack_level + 1, false);
|
||||
if (message_ret < 0)
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
|
||||
codegen.opcodes.push_back(GDScriptFunction::OPCODE_ASSERT);
|
||||
codegen.opcodes.push_back(ret2);
|
||||
codegen.opcodes.push_back(message_ret);
|
||||
#endif
|
||||
} break;
|
||||
case GDScriptParser::Node::TYPE_BREAKPOINT: {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue