GDScript: Consolidate behavior for assigning enum types
This makes sure that assigning values to enum-typed variables are consistent. Same enum is always valid, different enum is always invalid (without casting) and assigning `int` creates a warning if there is no casting. There are new test cases to ensure this behavior doesn't break in the future.
This commit is contained in:
parent
82efb1d262
commit
ad6e2e82a9
27 changed files with 185 additions and 29 deletions
|
|
@ -0,0 +1,13 @@
|
|||
enum MyEnum { ENUM_VALUE_1, ENUM_VALUE_2 }
|
||||
|
||||
var class_var: int = MyEnum.ENUM_VALUE_1
|
||||
|
||||
func test():
|
||||
print(class_var)
|
||||
class_var = MyEnum.ENUM_VALUE_2
|
||||
print(class_var)
|
||||
|
||||
var local_var: int = MyEnum.ENUM_VALUE_1
|
||||
print(local_var)
|
||||
local_var = MyEnum.ENUM_VALUE_2
|
||||
print(local_var)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
GDTEST_OK
|
||||
0
|
||||
1
|
||||
0
|
||||
1
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
enum MyEnum { ENUM_VALUE_1, ENUM_VALUE_2 }
|
||||
|
||||
var class_var: MyEnum = 0 as MyEnum
|
||||
|
||||
func test():
|
||||
print(class_var)
|
||||
class_var = 1 as MyEnum
|
||||
print(class_var)
|
||||
|
||||
var local_var: MyEnum = 0 as MyEnum
|
||||
print(local_var)
|
||||
local_var = 1 as MyEnum
|
||||
print(local_var)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
GDTEST_OK
|
||||
0
|
||||
1
|
||||
0
|
||||
1
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
enum MyEnum { ENUM_VALUE_1, ENUM_VALUE_2 }
|
||||
enum MyOtherEnum { OTHER_ENUM_VALUE_1, OTHER_ENUM_VALUE_2 }
|
||||
|
||||
var class_var: MyEnum = MyOtherEnum.OTHER_ENUM_VALUE_1 as MyEnum
|
||||
|
||||
func test():
|
||||
print(class_var)
|
||||
class_var = MyOtherEnum.OTHER_ENUM_VALUE_2 as MyEnum
|
||||
print(class_var)
|
||||
|
||||
var local_var: MyEnum = MyOtherEnum.OTHER_ENUM_VALUE_1 as MyEnum
|
||||
print(local_var)
|
||||
local_var = MyOtherEnum.OTHER_ENUM_VALUE_2 as MyEnum
|
||||
print(local_var)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
GDTEST_OK
|
||||
0
|
||||
1
|
||||
0
|
||||
1
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
enum MyEnum { ENUM_VALUE_1, ENUM_VALUE_2 }
|
||||
|
||||
var class_var: MyEnum = MyEnum.ENUM_VALUE_1
|
||||
|
||||
func test():
|
||||
print(class_var)
|
||||
class_var = MyEnum.ENUM_VALUE_2
|
||||
print(class_var)
|
||||
|
||||
var local_var: MyEnum = MyEnum.ENUM_VALUE_1
|
||||
print(local_var)
|
||||
local_var = MyEnum.ENUM_VALUE_2
|
||||
print(local_var)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
GDTEST_OK
|
||||
0
|
||||
1
|
||||
0
|
||||
1
|
||||
Loading…
Add table
Add a link
Reference in a new issue