GDScript: Allow usage of literal false in assert without a warning

This commit is contained in:
Dmitrii Maganov 2023-03-17 05:36:50 +02:00
parent 1e0f7a12f7
commit 5d0b183822
3 changed files with 9 additions and 1 deletions

View file

@ -2007,7 +2007,7 @@ void GDScriptAnalyzer::resolve_assert(GDScriptParser::AssertNode *p_assert) {
if (p_assert->condition->is_constant) {
if (p_assert->condition->reduced_value.booleanize()) {
parser->push_warning(p_assert->condition, GDScriptWarning::ASSERT_ALWAYS_TRUE);
} else {
} else if (!(p_assert->condition->type == GDScriptParser::Node::LITERAL && static_cast<GDScriptParser::LiteralNode *>(p_assert->condition)->value.get_type() == Variant::BOOL)) {
parser->push_warning(p_assert->condition, GDScriptWarning::ASSERT_ALWAYS_FALSE);
}
}

View file

@ -0,0 +1,6 @@
func test():
var never: Variant = false
if never:
assert(false)
assert(false, 'message')
print('ok')

View file

@ -0,0 +1,2 @@
GDTEST_OK
ok