mirror of
https://github.com/godotengine/godot.git
synced 2026-01-05 06:11:29 +03:00
GDScript: Allow casting enum to int
An enum value is always an integer so the cast is valid. The code here now consider this case to avoid giving an error message.
This commit is contained in:
@@ -3469,6 +3469,8 @@ void GDScriptAnalyzer::reduce_cast(GDScriptParser::CastNode *p_cast) {
|
||||
if (op_type.builtin_type == Variant::INT && cast_type.kind == GDScriptParser::DataType::ENUM) {
|
||||
mark_node_unsafe(p_cast);
|
||||
valid = true;
|
||||
} else if (op_type.kind == GDScriptParser::DataType::ENUM && cast_type.builtin_type == Variant::INT) {
|
||||
valid = true;
|
||||
} else if (op_type.kind == GDScriptParser::DataType::BUILTIN && cast_type.kind == GDScriptParser::DataType::BUILTIN) {
|
||||
valid = Variant::can_convert(op_type.builtin_type, cast_type.builtin_type);
|
||||
} else if (op_type.kind != GDScriptParser::DataType::BUILTIN && cast_type.kind != GDScriptParser::DataType::BUILTIN) {
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# GH-85882
|
||||
|
||||
enum Foo { A, B, C }
|
||||
|
||||
func test():
|
||||
var a := Foo.A
|
||||
var b := a as int + 1
|
||||
print(b)
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
GDTEST_OK
|
||||
1
|
||||
Reference in New Issue
Block a user