mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-28 18:30:06 +00:00
Add #partial tag for enumerated arrays to prevent common errors using non-contiguous enumerations
This commit is contained in:
+13
-3
@@ -1845,11 +1845,9 @@ constant_literal_expressions :: proc() {
|
||||
FOO_ARRAY_DEFAULTS :: [3]Foo{{}, {}, {}};
|
||||
fmt.println(FOO_ARRAY_DEFAULTS[2].x);
|
||||
|
||||
|
||||
|
||||
fmt.println("-------");
|
||||
|
||||
Baz :: enum{A=5, B, C, D=9};
|
||||
Baz :: enum{A=5, B, C, D};
|
||||
ENUM_ARRAY_CONST :: [Baz]int{.A .. .C = 1, .D = 16};
|
||||
|
||||
fmt.println(ENUM_ARRAY_CONST[.A]);
|
||||
@@ -1859,6 +1857,18 @@ constant_literal_expressions :: proc() {
|
||||
|
||||
fmt.println("-------");
|
||||
|
||||
Partial_Baz :: enum{A=5, B, C, D=16};
|
||||
#assert(len(Partial_Baz) < len(#partial [Partial_Baz]int));
|
||||
PARTIAL_ENUM_ARRAY_CONST :: #partial [Partial_Baz]int{.A .. .C = 1, .D = 16};
|
||||
|
||||
fmt.println(PARTIAL_ENUM_ARRAY_CONST[.A]);
|
||||
fmt.println(PARTIAL_ENUM_ARRAY_CONST[.B]);
|
||||
fmt.println(PARTIAL_ENUM_ARRAY_CONST[.C]);
|
||||
fmt.println(PARTIAL_ENUM_ARRAY_CONST[.D]);
|
||||
|
||||
fmt.println("-------");
|
||||
|
||||
|
||||
STRING_CONST :: "Hellope!";
|
||||
|
||||
fmt.println(STRING_CONST[0]);
|
||||
|
||||
Reference in New Issue
Block a user