Merge pull request #90448 from vnen/gdscript-infer-string-format
GDScript: Infer type with string format operator
This commit is contained in:
commit
67076c167d
|
@ -2864,6 +2864,11 @@ void GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode *p_binary_o
|
|||
result.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
|
||||
result.kind = GDScriptParser::DataType::BUILTIN;
|
||||
result.builtin_type = Variant::BOOL;
|
||||
} else if (p_binary_op->variant_op == Variant::OP_MODULE && left_type.builtin_type == Variant::STRING) {
|
||||
// The modulo operator (%) on string acts as formatting and will always return a string.
|
||||
result.type_source = left_type.type_source;
|
||||
result.kind = GDScriptParser::DataType::BUILTIN;
|
||||
result.builtin_type = Variant::STRING;
|
||||
} else if (left_type.is_variant() || right_type.is_variant()) {
|
||||
// Cannot infer type because one operand can be anything.
|
||||
result.kind = GDScriptParser::DataType::VARIANT;
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
# GH-88082
|
||||
|
||||
func test():
|
||||
var x = 1
|
||||
var message := "value: %s" % x
|
||||
print(message)
|
|
@ -0,0 +1,2 @@
|
|||
GDTEST_OK
|
||||
value: 1
|
Loading…
Reference in New Issue