mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
GDScript: Fix type certainty for result of ternary operator
This commit is contained in:
parent
0a9e6e478e
commit
1a810ff45e
5 changed files with 23 additions and 1 deletions
|
@ -3988,7 +3988,6 @@ void GDScriptAnalyzer::reduce_ternary_op(GDScriptParser::TernaryOpNode *p_ternar
|
|||
if (!is_type_compatible(true_type, false_type)) {
|
||||
result = false_type;
|
||||
if (!is_type_compatible(false_type, true_type)) {
|
||||
result.type_source = GDScriptParser::DataType::UNDETECTED;
|
||||
result.kind = GDScriptParser::DataType::VARIANT;
|
||||
#ifdef DEBUG_ENABLED
|
||||
parser->push_warning(p_ternary_op, GDScriptWarning::INCOMPATIBLE_TERNARY);
|
||||
|
@ -3996,6 +3995,7 @@ void GDScriptAnalyzer::reduce_ternary_op(GDScriptParser::TernaryOpNode *p_ternar
|
|||
}
|
||||
}
|
||||
}
|
||||
result.type_source = true_type.is_hard_type() && false_type.is_hard_type() ? GDScriptParser::DataType::ANNOTATED_INFERRED : GDScriptParser::DataType::INFERRED;
|
||||
|
||||
p_ternary_op->set_datatype(result);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue