Merge pull request #90580 from vnen/gdscript-allow-enum-to-int-cast
GDScript: Allow casting enum to int
This commit is contained in:
commit
c9a595afb5
3 changed files with 13 additions and 0 deletions
|
@ -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
|
Loading…
Reference in a new issue